use strict; use warnings; my $foo = 5; print "Content-type: text/plain\n"; print "Content-disposition: inline; filename=foo.txt\n\n"; printf "Package: %s\n", __PACKAGE__; printf "[%s] Before: %s\n", $$, $foo; badness(5); printf "[%s] After: %s\n", $$, $foo; sub badness { my $val = shift; printf "[%s] badness: %s\n", $$, $foo; $foo += $val; } #### package Apache::ROOTfoo_2ecom::test_2epl; use Apache qw(exit); sub handler { #line 1 /www/foo.com/test.pl use strict; use warnings; my $foo = 5; print "Content-type: text/plain\n"; print "Content-disposition: inline; filename=foo.txt\n\n"; printf "Package: %s\n", __PACKAGE__; printf "[%s] Before: %s\n", $$, $foo; badness(5); printf "[%s] After: %s\n", $$, $foo; sub badness { my $val = shift; printf "[%s] badness: %s\n", $$, $foo; $foo += $val; } } #### Package: Apache::ROOTfoo_2ecom::test_2epl [13520] Before: 5 [13520] badness: 5 [13520] After: 10 #### Package: Apache::ROOTfoo_2ecom::test_2epl [19331] Before: 5 [19331] badness: 5 [19331] After: 10 #### Package: Apache::ROOTfoo_2ecom::test_2epl [19331] Before: 5 [19331] badness: 10 [19331] After: 5 #### Package: Apache::ROOTfoo_2ecom::test_2epl [19331] Before: 5 [19331] badness: 15 [19331] After: 5 #### use strict; use warnings; my $foo = 5; print "Content-type: text/plain\n"; print "Content-disposition: inline; filename=foo.txt\n\n"; printf "Package: %s\n", __PACKAGE__; printf "[%s] Before: %s\n", $$, $foo; badness(\$foo, 5); badness(\$foo, 5); printf "[%s] After: %s\n", $$, $foo; sub badness { my ($foo,$val) = @_; printf "[%s] badness: %s\n", $$, $$foo; $$foo += $val; }