xref: /openbsd-src/gnu/usr.bin/perl/t/op/my_stash.t (revision b8851fcc53cbe24fd20b090f26dd149e353f6174)
1#!./perl
2
3package Foo;
4
5BEGIN {
6    chdir 't' if -d 't';
7    require './test.pl';
8    set_up_inc('../lib');
9}
10
11plan 9;
12
13use constant MyClass => 'Foo::Bar::Biz::Baz';
14
15{
16    package Foo::Bar::Biz::Baz;
17    1;
18}
19
20for (qw(Foo Foo:: MyClass __PACKAGE__)) {
21    eval "sub { my $_ \$obj = shift; }";
22    ok ! $@;
23#    print $@ if $@;
24}
25
26use constant NoClass => 'Nope::Foo::Bar::Biz::Baz';
27
28for (qw(Nope Nope:: NoClass)) {
29    eval "sub { my $_ \$obj = shift; }";
30    ok $@;
31#    print $@ if $@;
32}
33
34is runperl(prog => 'my main $r; sub FIELDS; $$r{foo}; print qq-ok\n-'),
35  "ok\n",
36  'no crash with hash element when FIELDS sub stub exists';
37is runperl(prog => 'my main $r; sub FIELDS; @$r{f,b}; print qq-ok\n-'),
38  "ok\n",
39  'no crash with hash slice when FIELDS sub stub exists';
40