Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

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 =; printf "%vd\n", $ip;
Log In?

What's my password?
Create A New User
[stevieb]: choroba my GPS home device is done, at least prototype v1 is. I'm just making sure all of my code does what it says now
[stevieb]: I test/prototype code on my Pi, then I migrate it over to Arduino when it's ready (if that's a better platform for what I'm doing). The whole RPi stuff was for learning at first, then it snowballed. I'm just trying to get my in-house CI...
[stevieb]: ...done, which obviously requires a specific hardware setup.

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (7)
As of 2017-06-25 22:52 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (572 votes). Check out past polls.