Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: my $x or my ($x)

by davidrw (Prior)
on Apr 04, 2006 at 13:24 UTC ( #541142=note: print w/replies, xml ) Need Help??

in reply to my $x or my ($x)

for the behavior, besides all of the above posts, also consider this simple example:
my @x = ('a' .. 'e'); my $y = @x; my ($z) = @x; warn $y; # 5 warn $z; # 'a'
Because, in scalar context, an array variable will evaluate to it's length.

I'd say that, in general, it's "more appropriate" to declare in list context only when list context is actually needed -- e.g. declaring multiple variables at once, or sometihng like the my ($z) = @x; above where you're working w/ an array on the RHS.

Another common use of list context:
function foo { my ($bar, $stuff, $blah) = @_; # get the arguments ... }

Replies are listed 'Best First'.
Re^2: my $x or my ($x)
by johngg (Abbot) on Apr 04, 2006 at 16:45 UTC
    I know that it is really not necessary but I have got into the habit when counting elements in a list of doing

    my $elems = scalar @list;

    rather than

    my $elems = @list;

    just to make it crystal clear for "those that come after" what is going on. That the question gets asked demonstrates why such practices can be helpful.



Log In?

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2016-10-22 00:27 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (291 votes). Check out past polls.