Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Scoping of my with foreach loop

by dragonchild (Archbishop)
on Mar 07, 2005 at 19:08 UTC ( [id://437287]=note: print w/replies, xml ) Need Help??


in reply to Scoping of my with foreach loop

Yes. In the second, $item is scoped only to the loop. In the first, $item is scoped outside the loop. You would use the second first if you want to access the value of $item outside the loop. As in
my $item; foreach $item (@values) { last if $item =~ /Some Complicated Regex/; } do_something_with( $item );

Update: Fixed typo as per Fletch's /msg.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

Replies are listed 'Best First'.
Re^2: Scoping of my with foreach loop
by ikegami (Patriarch) on Mar 07, 2005 at 19:33 UTC

    Not quite.

    do_something_with( $item );
    will always be the same as
    do_something_with( undef );
    in your code. foreach restores the initial value when the loops exits (in effect), as seen in the following snippet:

    use strict; my @values = (1, 2, 3, 'a', 4); my $item = 'z'; foreach $item (@values) { last if $item =~ /[^\d]/; } print($item); # Prints 'z', not 'a'.

    I thought it might be using a localized global when my is omitted, but it's clearly not the case:

    This is perl, v5.6.1 built for MSWin32-x86-multi-thread

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2024-04-25 23:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found