Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

w-ber's scratchpad

by w-ber (Hermit)
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 the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (11)
As of 2014-09-16 16:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (35 votes), past polls