use strict; use warnings; my $x=""; substr($x,2,1)="X"; # a fatal errror print "Alive!\n"; # not reached __END__ substr outside of string at - line 4. #### use strict; use warnings; my $x=""; bar($x); print "$x\n"; #prints 10 sub bar { $_[0]=10; } # does $x=10, essentially #### substr($x,2,1)=10