Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
Keep It Simple, Stupid
 
PerlMonks  

Re: How do I use a block as an ‘or’ clause instead of a simple die?

by linuxer (Deacon)
on Apr 18, 2009 at 14:27 UTC ( #758479=note: print w/ replies, xml ) Need Help??


in reply to How do I use a block as an ‘or’ clause instead of a simple die?

if ( !$ftp->put($myfile) ) { # do # your excessive exercise # her }


Comment on Re: How do I use a block as an ‘or’ clause instead of a simple die?
Download Code
Re^2: How do I use a block as an ‘or’ clause instead of a simple die?
by ikegami (Pope) on Apr 18, 2009 at 17:35 UTC
    The limit of if is encountered if you declare a variable.
    if (!open(my $fh, '<', $qfn)) { ... } print $fh $s; # XXX
    if (my ($y) = f($x)) { # Returns () on error. ... } print defined($y) ? $y : '[undef]'; # XXX

    Solutions:

    • Declare the var earlier:

      my $fh; if (!open($fh, '<', $qfn)) { ... }
      my $y; if (($y) = f($x)) { # Returns () on error. ... }
    • Save the result:

      my $success = open(my $fh, '<', $qfn); if (!$success) { ... }
      my $success = my ($y) = f($x); # Returns () on error. if (!$success) { ... }
    • Use do:

      open(my $fh, '<', $qfn) or do { ... };
      my ($y) = f($x) # Returns () on error. or do { ... };

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2014-04-18 07:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (463 votes), past polls