in reply to How to make array references from scalar value

null? you mean undef. You're supposed to show your real code, because the code you've shown works as you expect
#!/usr/bin/perl -- use Data::Dumper; { my $a="[a,b,{perl=>monk}]"; my $b=eval $a; warn $@ if $@; print Dumper($b); } { my $a="['a','b',{'perl'=>'monk'}]"; my $b=eval $a; warn $@ if $@; print Dumper($b); } { use strict; use warnings; my $a="[a,b,{perl=>monk}]"; my $b=eval $a; warn $@ if $@; print Dumper($b); } __END__ $VAR1 = [ 'a', 'b', { 'perl' => 'monk' } ]; $VAR1 = [ 'a', 'b', { 'perl' => 'monk' } ]; Bareword "a" not allowed while "strict subs" in use at (eval 3) line 1 +. Bareword "b" not allowed while "strict subs" in use at (eval 3) line 1 +. Bareword "monk" not allowed while "strict subs" in use at (eval 3) lin +e 1. $VAR1 = undef;
It only "breaks" under strict subs (my last example)