#!./perl package Foo; BEGIN { chdir 't' if -d 't'; require './test.pl'; set_up_inc('../lib'); } plan 9; use constant MyClass => 'Foo::Bar::Biz::Baz'; { package Foo::Bar::Biz::Baz; 1; } for (qw(Foo Foo:: MyClass __PACKAGE__)) { eval "sub { my $_ \$obj = shift; }"; ok ! $@; # print $@ if $@; } use constant NoClass => 'Nope::Foo::Bar::Biz::Baz'; for (qw(Nope Nope:: NoClass)) { eval "sub { my $_ \$obj = shift; }"; ok $@; # print $@ if $@; } is runperl(prog => 'my main $r; sub FIELDS; $$r{foo}; print qq-ok\n-'), "ok\n", 'no crash with hash element when FIELDS sub stub exists'; is runperl(prog => 'my main $r; sub FIELDS; @$r{f,b}; print qq-ok\n-'), "ok\n", 'no crash with hash slice when FIELDS sub stub exists';