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

Re: Re: $_ scoping issues

by swkronenfeld (Hermit)
on Jul 18, 2003 at 22:19 UTC ( #275780=note: print w/replies, xml ) Need Help??

in reply to Re: $_ scoping issues
in thread $_ scoping issues


> When you do foreach (list_of_stuff), $_ is aliased to each entry in the list in turn. Hence, $_ *is* $u->{loc} and has the same address.

This is exactly my mistake! I believed that each element was copied from the list_of_stuff into $_ one at a time. Good to know.

> I betcha that foreach ($u->{loc}) is a bug

You are write that it's a scalar, and I know it looks like I forgot to do something like @{($u->{loc})}, but it's actually my intended affect. Maybe I'm on the wrong track with this, so I'll post it in case people might have some useful suggestions for me.

I'm using the foreach to do an implicit assignment into $_, and then pattern match on $_. In addition, the foreach loop has the added bonus of allowing flow control (without creating a block)

foreach ($u->{loc}) { if(/n/) { print "option n" } elsif(/m/) { print "option m" } elsif(/w/) { print "option w" } ... }

I'm not sure why I originally did it this way (maybe I read something in one of the O'Reilly books that used this technique?), so I adapted it. Is there a better way? If I don't need the flow control advantage, is it better to simply assign $_ = $u->{loc} prior to my conditional statements?

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2023-02-04 18:09 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (31 votes). Check out past polls.