[dancer-users] Useless use of private variable in void context
Hugues
hugues at max4mail.com
Tue Apr 22 16:31:16 BST 2014
Thanks for your help
if I understand well
$Stock->{$NumP} = ( $Num => { Code => $parc->{Code} .... ) is
scalar context, and generate a error
$Stock->{$NumP} = { $Num => { Code => $parc->{Code} .... } is correct.
I will add "use diagnostics;" in my code
thanks
Hugues
Le 22/04/2014 17:18, Maxwell Carey a écrit :
> On 04/22/2014 08:21 AM, Hugues wrote:
>> $Stock->{$NumP} = ( $Num => { Code => $parc->{Code},
>> NumP => $parc->{NumP},
>> NumS => $parc->{NumS},
>> NumC => $parc->{NumC}
>> } );
>
> Not related to Dancer, just plain Perl. You're assigning a list to a
> scalar, which is probably not what you intend. What you're doing is
> the same as:
>
> my $foo = ( "foo", "bar" );
>
> which sets the value of $foo to "bar". If you turn on diagnostics with
> `use diagnostics;`, you can get a nice explanation of the warning:
>
> Another common error is to use ordinary parentheses to construct a
> list
> reference when you should be using square or curly brackets, for
> example, if you say
>
> $array = (1,2);
>
> when you should have said
>
> $array = [1,2];
>
> The square brackets explicitly turn a list value into a scalar value,
> while parentheses do not. So when a parenthesized list is
> evaluated in
> a scalar context, the comma is treated like C's comma operator, which
> throws away the left argument, which is not what you want. See
> perlref for more on this.
>
> To fix, change the parentheses to curly braces to create an anonymous
> hash:
>
> $Stock->{$NumP} = { $Num => { Code => $parc->{Code},
> NumP => $parc->{NumP},
> NumS => $parc->{NumS},
> NumC => $parc->{NumC}
> } };
>
> Or simply remove the additional level of hash nesting (which is
> essentially what is happening in your current program):
>
> $Stock->{$NumP} = { Code => $parc->{Code},
> NumP => $parc->{NumP},
> NumS => $parc->{NumS},
> NumC => $parc->{NumC}
> };
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
More information about the dancer-users
mailing list