Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

vrk's scratchpad

by vrk (Chaplain)
on Mar 01, 2007 at 16:04 UTC ( #602708=scratchpad: print w/replies, xml ) Need Help??

Two neat concepts I noticed in perlsub and perlref in February, 2007:

# Try and catch using prototypes. (Almost verbatim from perlsub.) sub try (&$) { my ($try, $catch) = @_; eval { &$try; }; if ($@) { local $_ = $@; &$catch; } } sub catch (&) { $_[0] } try { die "phooey"; } catch { /phooey/ and print "unphooey\n"; };
# Nested subroutines. sub frobnicate { my $input = shift; local *grok = sub { my $input = shift; # grok's $input is lexical, and therefore # different from the outer $input. return $input . " grokked!"; }; # Note the semicolon. return grok($input); } print frobnicate('foo'), "\n"; # However, this will work as well. sub frobnicate_again { my $input = shift; local *grok = sub { return $input . " grokked!"; }; return grok($input); } print frobnicate_again('foo'), "\n";

I always wondered how to do the latter in Perl.


A feature not known to me, learned while reading Programming Perl (3rd ed.):

my $ip = 127.0.0.1; printf "%vd\n", $ip;
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2017-06-23 12:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (545 votes). Check out past polls.