1*91f110e0Safresh1#!perl -w 2*91f110e0Safresh1 3*91f110e0Safresh1BEGIN { 4*91f110e0Safresh1 require Config; import Config; 5*91f110e0Safresh1 if ($Config{'extensions'} !~ /\bOpcode\b/) { 6*91f110e0Safresh1 print "1..0\n"; 7*91f110e0Safresh1 exit 0; 8*91f110e0Safresh1 } 9*91f110e0Safresh1} 10*91f110e0Safresh1 11*91f110e0Safresh1use Test::More tests => 3; 12*91f110e0Safresh1use Safe; 13*91f110e0Safresh1 14*91f110e0Safresh1my $c; my $r; 15*91f110e0Safresh1my $snippet = q{ 16*91f110e0Safresh1 my $foo = qr/foo/; 17*91f110e0Safresh1 ref $foo; 18*91f110e0Safresh1}; 19*91f110e0Safresh1$c = new Safe; 20*91f110e0Safresh1$r = $c->reval($snippet); 21*91f110e0Safresh1is( $r, "Safe::Root0::Regexp" ); 22*91f110e0Safresh1$r or diag $@; 23*91f110e0Safresh1 24*91f110e0Safresh1# once more with the same compartment 25*91f110e0Safresh1# (where DESTROY has been cleaned up) 26*91f110e0Safresh1$r = $c->reval($snippet); 27*91f110e0Safresh1is( $r, "Safe::Root0::Regexp" ); 28*91f110e0Safresh1$r or diag $@; 29*91f110e0Safresh1 30*91f110e0Safresh1# try with a new compartment 31*91f110e0Safresh1$c = new Safe; 32*91f110e0Safresh1$r = $c->reval($snippet); 33*91f110e0Safresh1is( $r, "Safe::Root1::Regexp" ); 34*91f110e0Safresh1$r or diag $@; 35