use warnings; use strict; Main( @ARGV ); exit( 0 ); my %hash; BEGIN { %hash = ( bar => 'value' ); } sub Foo { print $hash{shift(@_)} } sub Main { Foo('bar'); }