Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: foreach loop on one line

by Kenosis (Priest)
on Dec 03, 2013 at 00:49 UTC ( #1065348=note: print w/replies, xml ) Need Help??


in reply to foreach loop on one line

Is this not valid code?

Very close, but no, it's not. You need a code block with that foreach, as it is:

do { print "$_ could not be restored!\n" unless ( exists $found{$_} ) +} foreach (@files);

or (more commonly)

foreach (@files) { print "$_ could not be restored!\n" unless ( exists $found{$_} ); }

or you could

exists $found{$_} or print "$_ could not be restored!\n" foreach @file +s;

Why does this last one work? An (inclusive) or statement is true iff one of its disjuncts is true. If exists $found{$_} is true, there's no need to evaluate the 'expression' on the other side of the or, because the entire or statement is true. However, if exists $found{$_} is not true, then the other side of the or will be evaluated, viz., print "$_ could not be restored!\n".

Hope this helps!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1065348]
help
Chatterbox?
[Corion]: Oh. I've run out of prewritten blogs.perl.org articles. I need to release some more modules and write some more articles then ;)
choroba still has one more.
[Corion]: I have Thursday and Friday off, so then I might get to converting the rough outlines to more articles ;)

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2017-04-24 08:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I'm a fool:











    Results (437 votes). Check out past polls.