#!/usr/bin/perl -w #### NOTE: strict is not in force!! ### set_a(); print "a outside of sub is $a\n"; print "b outside of sub is $b\n"; sub set_a { $a = int(rand(100)); print "a in sub is $a\n"; my $b = int(rand(100)); print "b in sub is $b\n"; } __END__ Name "main::b" used only once: possible typo at C:\TEMP\scopedemo.pl line 5. Use of uninitialized value $b in concatenation (.) or string at C:\TEMP\scopedemo.pl line 5. a in sub is 27 b in sub is 45 a outside of sub is 27 b outside of sub is