#!/usr/bin/perl use strict; use warnings; # dispatch table... # my %table = ('x'=>\&ABC, 'y'=> sub {print "Anon sub for key 'y' in table\n";} ); sub ABC{print "sub ABC called\n";}; # call routines in the dispatch table... $table{'x'}->(); # prints: "sub ABC called" $table{'y'}->(); # prints: "Anon sub for key 'y' in table" # local can only "mask" an "our" or a global variable, like # perhaps as in the common idiom: # my $file = do { local $/; }; # which "slurps" an entire file into the $file variable.
# A "my" variable cannot be "localized" our $xyzzy = 33; { local $xyzzy = 55; print "$xyzzy\n"; #prints 55 } print "$xyzzy\n"; #prints 33