The eval is given null value. my $a="[a,b,{perl=>monk}]"; my $b=eval $a; print Dumper($b); Following coding is working fine. my $a="['a','b',{'perl'=>'monk'}]"; my $b=eval $a; print Dumper($b);