Check warnings::enabled & warnings::warn __END__ --FILE-- abc0.pm package abc0 ; use warnings "io" ; print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if ! warnings::enabled("io") ; 1; --FILE-- no warnings; use abc0 ; EXPECT ok1 ok2 ######## --FILE-- abc1.pm package abc1 ; no warnings ; print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; 1; --FILE-- use warnings 'syntax' ; use abc1 ; EXPECT ok1 ok2 ######## --FILE-- abc2.pm package abc2 ; use warnings 'syntax' ; print "ok1\n" if warnings::enabled('io') ; print "ok2\n" if ! warnings::enabled("syntax") ; 1; --FILE-- use warnings 'io' ; use abc2 ; EXPECT ok1 ok2 ######## --FILE-- abc3 no warnings ; print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if !warnings::enabled("syntax") ; 1; --FILE-- use warnings 'syntax' ; require "abc3" ; EXPECT ok1 ok2 ######## --FILE-- abc4 use warnings 'syntax' ; print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if ! warnings::enabled("syntax") ; print "ok3\n" if ! warnings::enabled("io") ; 1; --FILE-- use warnings 'io' ; require "abc4" ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc5.pm package abc5 ; no warnings ; sub check { print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; use abc5 ; abc5::check() ; EXPECT ok1 ok2 ######## --FILE-- abc6.pm package abc6 ; use warnings 'io' ; sub check { print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if ! warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc6 ; abc6::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc7 package abc7 ; no warnings ; sub check { print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; require "abc7" ; abc7::check() ; EXPECT ok1 ok2 ######## --FILE-- abc8 package abc8 ; use warnings 'io' ; sub check { print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if ! warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; require "abc8" ; abc8::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc9.pm package abc9 ; use warnings "io" ; print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if ! warnings::enabled("io") ; 1; --FILE-- def.pm package def; no warnings; use abc9 ; 1; --FILE-- use warnings; use def ; EXPECT ok1 ok2 ######## --FILE-- abc10.pm package abc10 ; no warnings ; print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if !warnings::enabled("io") ; 1; --FILE-- def.pm use warnings 'syntax' ; print "ok4\n" if !warnings::enabled('all') ; print "ok5\n" if !warnings::enabled("io") ; use abc10 ; 1; --FILE-- use warnings 'io' ; use def ; EXPECT ok1 ok2 ok3 ok4 ok5 ######## --FILE-- abc11.pm package abc11 ; no warnings ; sub check { print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; use abc11 ; eval { abc11::check() ; }; print $@ ; EXPECT ok1 ok2 ######## --FILE-- abc12.pm package abc12 ; use warnings 'io' ; sub check { print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if ! warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc12 ; eval { abc12::check() ; } ; print $@ ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc13 package abc13 ; no warnings ; sub check { print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; require "abc13" ; eval { abc13::check() ; } ; print $@ ; EXPECT ok1 ok2 ######## --FILE-- abc14 package abc14 ; use warnings 'io' ; sub check { print "ok1\n" if !warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; require "abc14" ; eval { use warnings 'io' ; abc14::check() ; }; abc14::check() ; print $@ ; EXPECT ok1 ok2 ok3 ok1 ok2 ######## --FILE-- abc15.pm package abc15 ; use warnings 'io' ; sub check { print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if ! warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc15 ; sub fred { abc15::check() } fred() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc16.pm package abc16 ; use warnings 'io' ; sub check { print "ok1\n" if ! warnings::enabled('all') ; } 1; --FILE-- use warnings 'syntax' ; use abc16 ; sub fred { no warnings ; abc16::check() } fred() ; EXPECT ok1 ######## --FILE-- abc17.pm package abc17 ; use warnings 'misc' ; sub check { print "ok1\n" if ! warnings::enabled('all') ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if warnings::enabled("io") ; print "ok4\n" if ! warnings::enabled("misc") ; } 1; --FILE-- use warnings 'syntax' ; use abc17 ; sub fred { use warnings 'io' ; abc17::check() } fred() ; EXPECT ok1 ok2 ok3 ok4 ######## # check warnings::warn use warnings ; eval { warnings::warn() } ; print $@ ; eval { warnings::warn("fred", "joe") } ; print $@ ; EXPECT Usage: warnings::warn([category,] 'message') at - line 5. Unknown warnings category 'fred' at - line 9. ######## # check warnings::warnif use warnings ; eval { warnings::warnif() } ; print $@ ; eval { warnings::warnif("fred", "joe") } ; print $@ ; EXPECT Usage: warnings::warnif([category,] 'message') at - line 5. Unknown warnings category 'fred' at - line 9. ######## --FILE-- abc18.pm package abc18 ; use warnings 'misc' ; sub check { warnings::warn("io", "hello") } 1; --FILE-- use warnings "io" ; use abc18; abc18::check() ; EXPECT hello at - line 3. ######## --FILE-- abc19.pm package abc19 ; use warnings 'misc' ; sub check { warnings::warn("misc", "hello") } 1; --FILE-- use warnings "io" ; use abc19; abc19::check() ; EXPECT hello at - line 3. ######## --FILE-- abc20.pm package abc20 ; use warnings 'misc' ; sub check { warnings::warn("io", "hello") } 1; --FILE-- use warnings qw( FATAL deprecated ) ; use abc20; eval { abc20::check() ; } ; print "[[$@]]\n"; EXPECT hello at - line 4. [[]] ######## --FILE-- abc21.pm package abc21 ; use warnings 'misc' ; sub check { warnings::warn("io", "hello") } 1; --FILE-- use warnings qw( FATAL io ) ; use abc21; eval { abc21::check() ; } ; print "[[$@]]\n"; EXPECT [[hello at - line 4. ]] ######## -W --FILE-- abc22.pm package abc22 ; use warnings "io" ; print "ok1\n" if warnings::enabled("io") ; print "ok2\n" if warnings::enabled("all") ; 1; --FILE-- no warnings; use abc22 ; EXPECT ok1 ok2 ######## -X --FILE-- abc23.pm package abc23 ; use warnings "io" ; print "ok1\n" if !warnings::enabled("io") ; print "ok2\n" if !warnings::enabled("all") ; 1; --FILE-- use warnings; use abc23 ; EXPECT ok1 ok2 ######## --FILE-- abc24.pm package abc24 ; no warnings ; sub check { print "ok\n" if ! warnings::enabled() ; } 1; --FILE-- use warnings 'syntax' ; use abc24 ; abc24::check() ; EXPECT package 'abc24' not registered for warnings at abc24.pm line 4. ######## --FILE-- abc25.pm package abc25 ; no warnings ; sub check { warnings::warn("fred") ; } 1; --FILE-- use warnings 'syntax' ; use abc25 ; abc25::check() ; EXPECT package 'abc25' not registered for warnings at abc25.pm line 4. ######## --FILE-- abc26.pm package abc26 ; no warnings ; sub check { warnings::warnif("fred") ; } 1; --FILE-- use warnings 'syntax' ; use abc26 ; abc26::check() ; EXPECT package 'abc26' not registered for warnings at abc26.pm line 4. ######## --FILE-- abc27.pm package abc27 ; use warnings 'io' ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if !warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc27 ; use warnings 'abc27' ; abc27::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc28.pm package abc28 ; use warnings 'io' ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if !warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc28 ; abc28::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc29.pm package abc29 ; no warnings ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; use abc29 ; use warnings 'abc29' ; eval { abc29::check() ; }; print $@ ; EXPECT ok1 ok2 ######## --FILE-- abc30.pm package abc30 ; use warnings 'io' ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if !warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc30 ; eval { abc30::check() ; } ; print $@ ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc31.pm package abc31 ; use warnings 'io' ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if !warnings::enabled("io") ; } 1; --FILE-- use warnings 'syntax' ; use abc31 ; use warnings 'abc31' ; sub fred { abc31::check() } fred() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc32.pm package abc32 ; use warnings 'io' ; use warnings::register ; sub check { print "ok1\n" if ! warnings::enabled ; } 1; --FILE-- use warnings 'syntax' ; use abc32 ; sub fred { no warnings ; abc32::check() } fred() ; EXPECT ok1 ######## --FILE-- abc33.pm package abc33 ; use warnings 'misc' ; use warnings::register; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; print "ok3\n" if warnings::enabled("io") ; print "ok4\n" if ! warnings::enabled("misc") ; } 1; --FILE-- use warnings 'syntax' ; use abc33 ; use warnings 'abc33' ; sub fred { use warnings 'io' ; abc33::check() } fred() ; EXPECT ok1 ok2 ok3 ok4 ######## --FILE-- abc34.pm package abc34 ; use warnings 'misc' ; use warnings::register; sub check { warnings::warn("hello") } 1; --FILE-- use abc34; use warnings "abc34" ; abc34::check() ; EXPECT hello at - line 3. ######## --FILE-- abc35.pm package abc35 ; use warnings::register; sub check { warnings::warn("hello") } 1; --FILE-- use abc35; abc35::check() ; EXPECT hello at - line 2. ######## --FILE-- abc36.pm package abc36 ; use warnings::register ; sub check { warnings::warn("hello") } 1; --FILE-- use abc36; use warnings qw( FATAL deprecated ) ; eval { abc36::check() ; } ; print "[[$@]]\n"; EXPECT hello at - line 4. [[]] ######## --FILE-- abc37.pm package abc37 ; use warnings::register ; sub check { warnings::warn("hello") } 1; --FILE-- use abc37; use warnings qw( FATAL abc37 ) ; eval { abc37::check() ; } ; print "[[$@]]\n"; EXPECT [[hello at - line 4. ]] ######## -W --FILE-- abc38.pm package abc38 ; use warnings "io" ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled() ; print "ok2\n" if warnings::enabled("io") ; print "ok3\n" if warnings::enabled("all") ; } 1; --FILE-- no warnings; use abc38 ; abc38::check() ; EXPECT ok1 ok2 ok3 ######## -X --FILE-- abc39.pm package abc39 ; use warnings "io" ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; } 1; --FILE-- no warnings; use abc39 ; abc39::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc40.pm package abc40 ; use warnings "io" ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled() ; print "ok2\n" if warnings::enabled("io") ; print "ok3\n" if warnings::enabled("all") ; } 1; --FILE-- use warnings 'all'; use abc40 ; abc40::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc41.pm package abc41 ; use warnings "io" ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; } 1; --FILE-- use abc41 ; no warnings ; abc41::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc42.pm package abc42 ; use warnings "io" ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; warnings::warnif("my message 1") ; warnings::warnif('abc42', "my message 2") ; warnings::warnif('io', "my message 3") ; warnings::warnif('all', "my message 4") ; } 1; --FILE-- use abc42 ; use warnings 'abc42'; no warnings ; abc42::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc43.pm package abc43 ; use warnings "io" ; use warnings::register ; sub check { print "abc43 self" . (warnings::enabled() ? "" : " not") . " enabled\n" ; print "abc43 def" . (warnings::enabled('def') ? "" : " not") . " enabled\n" ; print "abc43 all" . (warnings::enabled('all') ? "" : " not") . " enabled\n" ; } 1; --FILE-- def.pm package def ; use warnings "io" ; use warnings::register ; sub check { print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ; print "def abc43" . (warnings::enabled('abc43') ? "" : " not") . " enabled\n" ; print "def all" . (warnings::enabled('all') ? "" : " not") . " enabled\n" ; } 1; --FILE-- use abc43 ; use def ; use warnings 'abc43'; abc43::check() ; def::check() ; no warnings 'abc43' ; use warnings 'def' ; abc43::check() ; def::check() ; use warnings 'abc43' ; use warnings 'def' ; abc43::check() ; def::check() ; no warnings 'abc43' ; no warnings 'def' ; abc43::check() ; def::check() ; use warnings; abc43::check() ; def::check() ; no warnings 'abc43' ; abc43::check() ; def::check() ; EXPECT abc43 self enabled abc43 def not enabled abc43 all not enabled def self not enabled def abc43 enabled def all not enabled abc43 self not enabled abc43 def enabled abc43 all not enabled def self enabled def abc43 not enabled def all not enabled abc43 self enabled abc43 def enabled abc43 all not enabled def self enabled def abc43 enabled def all not enabled abc43 self not enabled abc43 def not enabled abc43 all not enabled def self not enabled def abc43 not enabled def all not enabled abc43 self enabled abc43 def enabled abc43 all enabled def self enabled def abc43 enabled def all enabled abc43 self not enabled abc43 def enabled abc43 all not enabled def self enabled def abc43 not enabled def all not enabled ######## -w --FILE-- abc44.pm package abc44 ; no warnings ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled() ; print "ok2\n" if warnings::enabled("io") ; print "ok3\n" if warnings::enabled("all") ; } 1; --FILE-- use abc44 ; abc44::check() ; EXPECT ok1 ok2 ok3 ######## -w --FILE-- abc45.pm package abc45 ; no warnings ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; } 1; --FILE-- use abc45 ; use warnings 'abc45'; no warnings ; abc45::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc46.pm package abc46 ; no warnings ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; warnings::warnif("my message 1") ; warnings::warnif('abc46', "my message 2") ; warnings::warnif('io', "my message 3") ; warnings::warnif('all', "my message 4") ; } 1; --FILE-- use abc46 ; use warnings 'abc46'; no warnings ; BEGIN { $^W = 1 ; } abc46::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc47.pm package abc47 ; no warnings ; use warnings::register ; sub check { print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; } 1; --FILE-- use abc47 ; use warnings 'abc47'; no warnings ; $^W = 1 ; abc47::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc48.pm $| = 1; package abc48 ; no warnings ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; print "ok4\n" if warnings::enabled("abc48") ; warnings::warn("my message 1") ; warnings::warnif("my message 2") ; warnings::warnif('abc48', "my message 3") ; warnings::warnif('io', "my message 4") ; warnings::warnif('all', "my message 5") ; } sub in2 { no warnings ; check() } sub in1 { no warnings ; in2() } 1; --FILE-- use abc48 ; use warnings 'abc48'; abc48::in1() ; EXPECT ok1 ok2 ok3 ok4 my message 1 at - line 3. my message 2 at - line 3. my message 3 at - line 3. ######## --FILE-- def.pm package def ; no warnings ; use warnings::register ; sub check { print "ok1\n" if warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; print "ok4\n" if warnings::enabled("def") ; warnings::warn("my message 1") ; warnings::warnif("my message 2") ; warnings::warnif('def', "my message 3") ; warnings::warnif('io', "my message 4") ; warnings::warnif('all', "my message 5") ; } sub in2 { no warnings ; check() } sub in1 { no warnings ; in2() } 1; --FILE-- abc49.pm $| = 1; package abc49 ; use def ; use warnings 'def'; sub in1 { def::in1() ; } 1; --FILE-- use abc49 ; no warnings; abc49::in1() ; EXPECT ok1 ok2 ok3 ok4 my message 1 at abc49.pm line 5. my message 2 at abc49.pm line 5. my message 3 at abc49.pm line 5. ######## --FILE-- def.pm $| = 1; package def ; no warnings ; use warnings::register ; require Exporter; @ISA = qw( Exporter ) ; @EXPORT = qw( in1 ) ; sub check { print "ok1\n" if warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; print "ok4\n" if warnings::enabled("abc50") ; print "ok5\n" if !warnings::enabled("def") ; warnings::warn("my message 1") ; warnings::warnif("my message 2") ; warnings::warnif('abc50', "my message 3") ; warnings::warnif('def', "my message 4") ; warnings::warnif('io', "my message 5") ; warnings::warnif('all', "my message 6") ; } sub in2 { no warnings ; check() } sub in1 { no warnings ; in2() } 1; --FILE-- abc50.pm package abc50 ; use warnings::register ; use def ; #@ISA = qw(def) ; 1; --FILE-- use abc50 ; no warnings; use warnings 'abc50'; abc50::in1() ; EXPECT ok2 ok3 ok4 ok5 my message 1 at - line 4. my message 3 at - line 4. ######## --FILE-- def.pm package def ; no warnings ; use warnings::register ; sub new { my $class = shift ; bless [], $class ; } sub check { my $self = shift ; print "ok1\n" if !warnings::enabled() ; print "ok2\n" if !warnings::enabled("io") ; print "ok3\n" if !warnings::enabled("all") ; print "ok4\n" if warnings::enabled("abc51") ; print "ok5\n" if !warnings::enabled("def") ; print "ok6\n" if warnings::enabled($self) ; warnings::warn("my message 1") ; warnings::warn($self, "my message 2") ; warnings::warnif("my message 3") ; warnings::warnif('abc51', "my message 4") ; warnings::warnif('def', "my message 5") ; warnings::warnif('io', "my message 6") ; warnings::warnif('all', "my message 7") ; warnings::warnif($self, "my message 8") ; } sub in2 { no warnings ; my $self = shift ; $self->check() ; } sub in1 { no warnings ; my $self = shift ; $self->in2(); } 1; --FILE-- abc51.pm $| = 1; package abc51 ; use warnings::register ; use def ; @ISA = qw(def) ; sub new { my $class = shift ; bless [], $class ; } 1; --FILE-- use abc51 ; no warnings; use warnings 'abc51'; $a = new abc51 ; $a->in1() ; print "**\n"; $b = new def ; $b->in1() ; EXPECT ok1 ok2 ok3 ok4 ok5 ok6 my message 1 at - line 5. my message 2 at - line 5. my message 4 at - line 5. my message 8 at - line 5. ** ok1 ok2 ok3 ok4 ok5 my message 1 at - line 8. my message 2 at - line 8. my message 4 at - line 8. ######## --FILE-- abc52.pm package abc52 ; use warnings::register ('foo', 'bar'); sub check { warnings::warnif('abc52', "hello"); warnings::warnif('abc52::foo', "hello foo"); warnings::warnif('abc52::bar', "hello bar"); } 1; --FILE-- use abc52; use warnings("abc52", "abc52::bar"); abc52::check() ; EXPECT hello at - line 3. hello bar at - line 3. ######## --FILE-- # test for bug [perl #15395] my ( $warn_cat, # warning category we'll try to control $warn_msg, # the error message to catch ); package SomeModule; use warnings::register; BEGIN { $warn_cat = __PACKAGE__; $warn_msg = 'from ' . __PACKAGE__; } # a sub that generates a random warning sub gen_warning { warnings::warnif( $warn_msg ); } package ClientModule; # use SomeModule; (would go here) our @CARP_NOT = ( $warn_cat ); # deliver warnings to *our* client # call_warner provokes a warning. It is delivered to its caller, # who should also be able to control it sub call_warner { SomeModule::gen_warning(); } # user package main; my $warn_line = __LINE__ + 3; # this line should be in the error message eval { use warnings FATAL => $warn_cat; # we want to know if this works ClientModule::call_warner(); }; # have we caught an error, and is it the one we generated? print "ok1\n" if $@ =~ /$warn_msg/; # does it indicate the right line? print "ok2\n" if $@ =~ /line $warn_line/; EXPECT ok1 ok2 ######## --FILE-- fatal1.pm package fatal1 ; no warnings ; print "ok1\n" if !warnings::fatal_enabled('all') ; print "ok2\n" if !warnings::fatal_enabled("syntax") ; 1; --FILE-- use fatal1 ; EXPECT ok1 ok2 ######## --FILE-- fatal2.pm package fatal2; no warnings ; print "ok1\n" if !warnings::fatal_enabled('all') ; print "ok2\n" if warnings::fatal_enabled("syntax") ; 1; --FILE-- use warnings FATAL => 'syntax' ; use fatal2 ; EXPECT ok1 ok2 ######## --FILE-- fatal3.pm package fatal3 ; no warnings ; print "ok1\n" if warnings::fatal_enabled('all') ; print "ok2\n" if warnings::fatal_enabled("syntax") ; 1; --FILE-- use warnings FATAL => 'all' ; use fatal3 ; EXPECT ok1 ok2 ######## --FILE-- fatal4.pm package fatal4 ; no warnings ; print "ok1\n" if !warnings::fatal_enabled('all') ; print "ok2\n" if warnings::fatal_enabled("void") ; print "ok3\n" if !warnings::fatal_enabled("syntax") ; 1; --FILE-- use warnings FATAL => 'all', NONFATAL => 'syntax' ; use fatal4 ; EXPECT ok1 ok2 ok3