#!./perl use Test::More tests => 24; #use warnings; no warnings < deprecated syntax >; $* = 1; $old = "\nfoo" =~ /^foo/; $* = 0; use Classic'Perl; $* = 1; ok "\nfoo" =~ /^foo/, '$* affects match'; $_ = "\nfoo"; s/^foo/bar/; is $_, "\nbar", '$* affects s///'; ok "\nfoo" =~ qr/^foo/, '$* affects qr'; $* = 0; ok "\nfoo" !~ /^foo/, '$* = 0 affects match'; $_ = "\nfoo"; s/^foo/bar/; is $_, "\nfoo", '$* = 0 affects s///'; ok "\nfoo" !~ qr/^foo/, '$* = 0 affects qr'; { local $* = 1; ok "\nfoo" =~ /^foo/, 'local $* affects match'; $_ = "\nfoo"; s/^foo/bar/; is $_, "\nbar", 'local $* affects s///'; ok "\nfoo" =~ qr/^foo/, 'local $* affects qr'; } ok "\nfoo" !~ /^foo/, 'old m restored when local $* falls out of scope'; $_ = "\nfoo"; s/^foo/bar/; is $_, "\nfoo", 'old s/// restored when local $* falls out of scope'; ok "\nfoo" !~ qr/^foo/, 'old qr restored when local $* falls out of scope'; { local ($*) = 1; ok "\nfoo" =~ /^foo/, 'local ($*) affects match'; $_ = "\nfoo"; s/^foo/bar/; is $_, "\nbar", 'local ($*) affects s///'; ok "\nfoo" =~ qr/^foo/, 'local ($*) affects qr'; } ($*) = 1; ok "\nfoo" =~ /^foo/, '($*) = 1 affects match'; $_ = "\nfoo"; s/^foo/bar/; is $_, "\nbar", '($*) = 1 affects s///'; ok "\nfoo" =~ qr/^foo/, '($*) = 1 affects qr'; $* = 0; no Classic'Perl; $* = 1; is "\nfoo" =~ /^foo/, $old, 'no CP restores the prev $* behaviour'; use Classic'Perl; $* = 1; no Classic'Perl; is "\nfoo" =~ /^foo/, $old, 'no CP restores the prev $* when set to 1'; use Classic'Perl 'split'; $* = 1; is "\nfoo" =~ /^foo/, $old, 'other CP pragmata leave multiline off'; { use Classic'Perl } $* = 1; is "\nfoo" =~ /^foo/, $old, 'CP lasts only till the end of the block'; { use Classic::::Perl 5.009; $* = 1; is "\nfoo" =~ /^foo/, $old, 'Classic::::Perl 5.009 leaves $* off'; use Classic::::Perl 5.008999; $* = 1; ok "\nfoo" =~ /^foo/, 'Classic::::Perl 5.008999 enables $*'; }