18 sub f { my $p=$_[0]; return $p }
23 # Is pos() set inside //g? (bug id 19990615.008)
24 $x = "test string?"; $x =~ s/\w/pos($x)/eg;
25 is($x, "0123 5678910?");
27 $x = "123 56"; $x =~ / /g;
32 # Explicit test that triggers the utf8_mg_len_cache_update() code path in
41 { package Class; DESTROY { ++$destroyed; } }
47 $x = bless({}, 'Class');
49 is($destroyed, 1, 'Timely scalar destruction with lvalue pos');
52 like $@, qr/^Can't modify array dereference in match position at /,
53 'pos refuses @arrays';
55 like $@, qr/^Can't modify hash dereference in match position at /,
56 'pos refuses %hashes';
58 is eval 'pos *a', 1, 'pos *glob works';
60 # Test that UTF8-ness of $1 changing does not confuse pos
61 "f" =~ /(f)/; "$1"; # first make sure UTF8-ness is off
62 "\x{100}a" =~ /(..)/; # give PL_curpm a UTF8 string; $1 does not know yet
63 pos($1) = 2; # set pos; was ignoring UTF8-ness
64 "$1"; # turn on UTF8 flag
65 is pos($1), 2, 'pos is not confused about changing UTF8-ness';