Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
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 perusing the Monastery: (7)
As of 2015-07-08 03:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls