Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^3: my $x or my ($x)

by ptum (Priest)
on Apr 04, 2006 at 13:39 UTC ( #541144=note: print w/ replies, xml ) Need Help??


in reply to Re^2: my $x or my ($x)
in thread my $x or my ($x)

One common mistake that is made when assigning to a collection of scalars is this:

my ($one, $two, $three, $four) = 0;

People tend to think that all four variables are initialized, but really only $one is set to zero, the rest are still undef. You'd have to explicitly set each variable to achieve that result:

my $one = my $two = my $three = my $four = 0;

... or alternatively:

my ($one, $two, $three, $four) = (0,0,0,0);

But as was stated elsewhere, this lacks readability for large collections of scalars. In general, I tend to declare my variables and either initialize them to zero or leave them undefined, then assigning their values in later statements. I hate getting warnings about variables being undef when evaluating in a conditional statement.


No good deed goes unpunished. -- (attributed to) Oscar Wilde


Comment on Re^3: my $x or my ($x)
Select or Download Code
Re^4: my $x or my ($x)
by eff_i_g (Curate) on Apr 04, 2006 at 15:35 UTC
    Just a quick addition to ptum's. I would write:
    my ($one, $two, $three, $four) = (0,0,0,0);
    as
    my ($one, $two, $three, $four) = (0) x 4;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://541144]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2014-09-30 23:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (385 votes), past polls