10 use Scalar::Util qw(reftype);
13 my $Bar = Package::Stash->new('Bar');
17 isa_ok(B::svref_2object(\$pviv), 'B::PVIV');
18 is(exception { $Bar->add_symbol('$pviv', \$pviv) }, undef,
19 "can add PVIV values");
23 isa_ok(B::svref_2object(\$pvnv), 'B::PVNV');
24 is(exception { $Bar->add_symbol('$pvnv', \$pvnv) }, undef,
25 "can add PVNV values");
29 isa_ok(B::svref_2object(\$pvmg), 'B::PVMG');
30 is(exception { $Bar->add_symbol('$pvmg', \$pvmg) }, undef,
31 "can add PVMG values");
34 isa_ok(B::svref_2object($regexp), ($] < 5.012 ? 'B::PVMG' : 'B::REGEXP'));
35 is(exception { $Bar->add_symbol('$regexp', $regexp) }, undef,
36 "can add REGEXP values");
38 my $pvgv = Symbol::gensym;
39 isa_ok(B::svref_2object($pvgv), 'B::GV');
40 isnt(exception { $Bar->add_symbol('$pvgv', $pvgv) }, undef,
41 "can't add PVGV values");
44 isa_ok(B::svref_2object(\substr($pvlv, 0, 1)), 'B::PVLV');
45 is(exception { $Bar->add_symbol('$pvlv', \substr($pvlv, 0, 1)) }, undef,
46 "can add PVLV values");
49 is(reftype(\$vstring), ($] < 5.010 ? 'SCALAR' : 'VSTRING'));
50 is(exception { $Bar->add_symbol('$vstring', \$vstring) }, undef,
51 "can add vstring values");