use strict; use warnings; my $d = 3; sub foo { my ($data) = @_; $$data++; } eval {foo($d);}; print $@; # prints informative message provided by strict foo(\$d); print "$d\n"; __END__ Can't use string ("3") as a SCALAR ref while "strict refs" in use ... 4