1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 @INC = '../lib'; 6 require './test.pl'; 7} 8 9plan tests => 8; 10 11$x='banana'; 12$x=~/.a/g; 13is(pos($x), 2); 14 15$x=~/.z/gc; 16is(pos($x), 2); 17 18sub f { my $p=$_[0]; return $p } 19 20$x=~/.a/g; 21is(f(pos($x)), 4); 22 23# Is pos() set inside //g? (bug id 19990615.008) 24$x = "test string?"; $x =~ s/\w/pos($x)/eg; 25is($x, "0123 5678910?"); 26 27$x = "123 56"; $x =~ / /g; 28is(pos($x), 4); 29{ local $x } 30is(pos($x), 4); 31 32# Explicit test that triggers the utf8_mg_len_cache_update() code path in 33# Perl_sv_pos_b2u(). 34 35$x = "\x{100}BC"; 36$x =~ m/.*/g; 37is(pos $x, 3); 38 39 40my $destroyed; 41{ package Class; DESTROY { ++$destroyed; } } 42 43$destroyed = 0; 44{ 45 my $x = ''; 46 pos($x) = 0; 47 $x = bless({}, 'Class'); 48} 49is($destroyed, 1, 'Timely scalar destruction with lvalue pos'); 50