use strict; use warnings; use Data::Dump::Streamer; use vars qw($hash $var1 $var2); $hash->{subs}->[0] = sub { $var1 = "a"; $var2 = "b"; }; $hash->{subs}->[1] = sub { $var1 = "c"; $var2 = "d"; }; Dump($hash)->Names('$hash')->Out; #### use strict; use warnings; use vars qw($hash $var1 $var2); my $file = shift or die "No file given\n"; open my $in, '<', $file or die "input $file: $!\n"; eval do { local $/ = undef; <$in>; }; $var1 = 'foo'; print "var1 = $var1\n"; $hash->{subs}[1]->(); print "var1 = $var1\n";