Check warnings::enabled & warnings::warn __END__ --FILE-- abc.pm package abc ; use warnings "io" ; print "ok1\n" if ! warnings::enabled() ; print "ok2\n" if ! warnings::enabled("io") ; 1; --FILE-- no warnings; use abc ; EXPECT ok1 ok2 ######## --FILE-- abc.pm package abc ; no warnings ; print "ok1\n" if warnings::enabled() ; print "ok2\n" if warnings::enabled("syntax") ; 1; --FILE-- use warnings 'syntax' ; use abc ; EXPECT ok1 ok2 ######## --FILE-- abc.pm package abc ; use warnings 'syntax' ; print "ok1\n" if warnings::enabled() ; print "ok2\n" if ! warnings::enabled("syntax") ; 1; --FILE-- use warnings 'io' ; use abc ; EXPECT ok1 ok2 ######## --FILE-- abc no warnings ; print "ok1\n" if warnings::enabled() ; print "ok2\n" if warnings::enabled("syntax") ; 1; --FILE-- use warnings 'syntax' ; require "abc" ; EXPECT ok1 ok2 ######## --FILE-- abc use warnings 'syntax' ; print "ok1\n" if warnings::enabled ; print "ok2\n" if ! warnings::enabled("syntax") ; print "ok3\n" if warnings::enabled("io") ; 1; --FILE-- use warnings 'io' ; require "abc" ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc.pm package abc ; no warnings ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; use abc ; abc::check() ; EXPECT ok1 ok2 ######## --FILE-- abc.pm package abc ; use warnings 'io' ; 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 abc ; abc::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc package abc ; no warnings ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; require "abc" ; abc::check() ; EXPECT ok1 ok2 ######## --FILE-- abc package abc ; use warnings 'io' ; 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' ; require "abc" ; abc::check() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc.pm package abc ; use warnings "io" ; print "ok1\n" if ! warnings::enabled() ; print "ok2\n" if ! warnings::enabled("io") ; 1; --FILE-- def.pm no warnings; use abc ; 1; --FILE-- use warnings; use def ; EXPECT ok1 ok2 ######## --FILE-- abc.pm package abc ; no warnings ; print "ok1\n" if warnings::enabled() ; 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() ; print "ok5\n" if warnings::enabled("io") ; use abc ; 1; --FILE-- use warnings 'io' ; use def ; EXPECT ok1 ok2 ok3 ok4 ok5 ######## --FILE-- abc.pm package abc ; no warnings ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; use abc ; eval { abc::check() ; }; print $@ ; EXPECT ok1 ok2 ######## --FILE-- abc.pm package abc ; use warnings 'io' ; 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 abc ; eval { abc::check() ; } ; print $@ ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc package abc ; no warnings ; sub check { print "ok1\n" if warnings::enabled ; print "ok2\n" if warnings::enabled("syntax") ; } 1; --FILE-- use warnings 'syntax' ; require "abc" ; eval { abc::check() ; } ; print $@ ; EXPECT ok1 ok2 ######## --FILE-- abc package abc ; use warnings 'io' ; 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' ; require "abc" ; eval { use warnings 'io' ; abc::check() ; }; abc::check() ; print $@ ; EXPECT ok1 ok2 ok3 ok1 ok2 ######## --FILE-- abc.pm package abc ; use warnings 'io' ; 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 abc ; sub fred { abc::check() } fred() ; EXPECT ok1 ok2 ok3 ######## --FILE-- abc.pm package abc ; use warnings 'io' ; sub check { print "ok1\n" if ! warnings::enabled ; } 1; --FILE-- use warnings 'syntax' ; use abc ; sub fred { no warnings ; abc::check() } fred() ; EXPECT ok1 ######## --FILE-- abc.pm package abc ; use warnings 'misc' ; 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 abc ; sub fred { use warnings 'io' ; abc::check() } fred() ; EXPECT ok1 ok2 ok3 ok4 ######## # check warnings::warn use warnings ; eval { warnings::warn() } ; print $@ ; eval { warnings::warn("fred") } ; print $@ ; EXPECT Usage: warnings::warn('category', 'message') at - line 4 Usage: warnings::warn('category', 'message') at - line 6 ######## --FILE-- abc.pm package abc ; use warnings 'misc' ; sub check { warnings::warn("io", "hello") } 1; --FILE-- use warnings "io" ; use abc; abc::check() ; EXPECT hello at - line 3 ######## --FILE-- abc.pm package abc ; use warnings 'misc' ; sub check { warnings::warn("misc", "hello") } 1; --FILE-- use warnings "io" ; use abc; abc::check() ; EXPECT hello at - line 3 ######## --FILE-- abc.pm package abc ; use warnings 'misc' ; sub check { warnings::warn("io", "hello") } 1; --FILE-- use warnings qw( FATAL deprecated ) ; use abc; eval { abc::check() ; } ; print "[[$@]]\n"; EXPECT hello at - line 3 [[]] ######## --FILE-- abc.pm package abc ; use warnings 'misc' ; sub check { warnings::warn("io", "hello") } 1; --FILE-- use warnings qw( FATAL io ) ; use abc; eval { abc::check() ; } ; print "[[$@]]\n"; EXPECT [[hello at - line 3 ]]