Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

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

by linuxer (Curate)
on Apr 18, 2009 at 14:27 UTC ( [id://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

Replies are listed 'Best First'.
Re^2: How do I use a block as an ‘or’ clause instead of a simple die?
by ikegami (Patriarch) 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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://758479]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2024-04-24 00:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found