xref: /openbsd/gnu/usr.bin/perl/t/lib/warnings/9enabled (revision 7b36286a)
1Check warnings::enabled & warnings::warn
2
3__END__
4
5--FILE-- abc.pm
6package abc ;
7use warnings "io" ;
8print "ok1\n" if ! warnings::enabled('all') ;
9print "ok2\n" if ! warnings::enabled("io") ;
101;
11--FILE--
12no warnings;
13use abc ;
14EXPECT
15ok1
16ok2
17########
18
19--FILE-- abc.pm
20package abc ;
21no warnings ;
22print "ok1\n" if !warnings::enabled('all') ;
23print "ok2\n" if warnings::enabled("syntax") ;
241;
25--FILE--
26use warnings 'syntax' ;
27use abc ;
28EXPECT
29ok1
30ok2
31########
32
33--FILE-- abc.pm
34package abc ;
35use warnings 'syntax' ;
36print "ok1\n" if   warnings::enabled('io') ;
37print "ok2\n" if ! warnings::enabled("syntax") ;
381;
39--FILE--
40use warnings 'io' ;
41use abc ;
42EXPECT
43ok1
44ok2
45########
46
47--FILE-- abc
48no warnings ;
49print "ok1\n" if !warnings::enabled('all') ;
50print "ok2\n" if warnings::enabled("syntax") ;
511;
52--FILE--
53use warnings 'syntax' ;
54require "abc" ;
55EXPECT
56ok1
57ok2
58########
59
60--FILE-- abc
61use warnings 'syntax' ;
62print "ok1\n" if ! warnings::enabled('all') ;
63print "ok2\n" if ! warnings::enabled("syntax") ;
64print "ok3\n" if   warnings::enabled("io") ;
651;
66--FILE--
67use warnings 'io' ;
68require "abc" ;
69EXPECT
70ok1
71ok2
72ok3
73########
74
75--FILE-- abc.pm
76package abc ;
77no warnings ;
78sub check {
79  print "ok1\n" if !warnings::enabled('all') ;
80  print "ok2\n" if warnings::enabled("syntax") ;
81}
821;
83--FILE--
84use warnings 'syntax' ;
85use abc ;
86abc::check() ;
87EXPECT
88ok1
89ok2
90########
91
92--FILE-- abc.pm
93package abc ;
94use warnings 'io' ;
95sub check {
96  print "ok1\n" if ! warnings::enabled('all') ;
97  print "ok2\n" if   warnings::enabled("syntax") ;
98  print "ok3\n" if ! warnings::enabled("io") ;
99}
1001;
101--FILE--
102use warnings 'syntax' ;
103use abc ;
104abc::check() ;
105EXPECT
106ok1
107ok2
108ok3
109########
110
111--FILE-- abc
112package abc ;
113no warnings ;
114sub check {
115  print "ok1\n" if !warnings::enabled('all') ;
116  print "ok2\n" if warnings::enabled("syntax") ;
117}
1181;
119--FILE--
120use warnings 'syntax' ;
121require "abc" ;
122abc::check() ;
123EXPECT
124ok1
125ok2
126########
127
128--FILE-- abc
129package abc ;
130use warnings 'io' ;
131sub check {
132  print "ok1\n" if ! warnings::enabled('all') ;
133  print "ok2\n" if   warnings::enabled("syntax") ;
134  print "ok3\n" if ! warnings::enabled("io") ;
135}
1361;
137--FILE--
138use warnings 'syntax' ;
139require "abc" ;
140abc::check() ;
141EXPECT
142ok1
143ok2
144ok3
145########
146
147--FILE-- abc.pm
148package abc ;
149use warnings "io" ;
150print "ok1\n" if ! warnings::enabled('all') ;
151print "ok2\n" if ! warnings::enabled("io") ;
1521;
153--FILE-- def.pm
154package def;
155no warnings;
156use abc ;
1571;
158--FILE--
159use warnings;
160use def ;
161EXPECT
162ok1
163ok2
164########
165
166--FILE-- abc.pm
167package abc ;
168no warnings ;
169print "ok1\n" if ! warnings::enabled('all') ;
170print "ok2\n" if warnings::enabled("syntax") ;
171print "ok3\n" if !warnings::enabled("io") ;
1721;
173--FILE-- def.pm
174use warnings 'syntax' ;
175print "ok4\n" if !warnings::enabled('all') ;
176print "ok5\n" if warnings::enabled("io") ;
177use abc ;
1781;
179--FILE--
180use warnings 'io' ;
181use def ;
182EXPECT
183ok1
184ok2
185ok3
186ok4
187ok5
188########
189
190--FILE-- abc.pm
191package abc ;
192no warnings ;
193sub check {
194  print "ok1\n" if !warnings::enabled('all') ;
195  print "ok2\n" if warnings::enabled("syntax") ;
196}
1971;
198--FILE--
199use warnings 'syntax' ;
200use abc ;
201eval {
202  abc::check() ;
203};
204print $@ ;
205EXPECT
206ok1
207ok2
208########
209
210--FILE-- abc.pm
211package abc ;
212use warnings 'io' ;
213sub check {
214  print "ok1\n" if ! warnings::enabled('all') ;
215  print "ok2\n" if   warnings::enabled("syntax") ;
216  print "ok3\n" if ! warnings::enabled("io") ;
217}
2181;
219--FILE--
220use warnings 'syntax' ;
221use abc ;
222eval {
223  abc::check() ;
224  } ;
225print $@ ;
226EXPECT
227ok1
228ok2
229ok3
230########
231
232--FILE-- abc
233package abc ;
234no warnings ;
235sub check {
236  print "ok1\n" if !warnings::enabled('all') ;
237  print "ok2\n" if warnings::enabled("syntax") ;
238}
2391;
240--FILE--
241use warnings 'syntax' ;
242require "abc" ;
243eval {
244  abc::check() ;
245  } ;
246print $@ ;
247EXPECT
248ok1
249ok2
250########
251
252--FILE-- abc
253package abc ;
254use warnings 'io' ;
255sub check {
256  print "ok1\n" if !warnings::enabled('all') ;
257  print "ok2\n" if warnings::enabled("syntax") ;
258  print "ok3\n" if warnings::enabled("io") ;
259}
2601;
261--FILE--
262use warnings 'syntax' ;
263require "abc" ;
264eval {
265  use warnings 'io' ;
266  abc::check() ;
267};
268abc::check() ;
269print $@ ;
270EXPECT
271ok1
272ok2
273ok3
274ok1
275ok2
276########
277
278--FILE-- abc.pm
279package abc ;
280use warnings 'io' ;
281sub check {
282  print "ok1\n" if ! warnings::enabled('all') ;
283  print "ok2\n" if  warnings::enabled("syntax") ;
284  print "ok3\n" if ! warnings::enabled("io") ;
285}
2861;
287--FILE--
288use warnings 'syntax' ;
289use abc ;
290sub fred { abc::check() }
291fred() ;
292EXPECT
293ok1
294ok2
295ok3
296########
297
298--FILE-- abc.pm
299package abc ;
300use warnings 'io' ;
301sub check {
302  print "ok1\n" if  ! warnings::enabled('all') ;
303}
3041;
305--FILE--
306use warnings 'syntax' ;
307use abc ;
308sub fred { no warnings ; abc::check() }
309fred() ;
310EXPECT
311ok1
312########
313
314--FILE-- abc.pm
315package abc ;
316use warnings 'misc' ;
317sub check {
318  print "ok1\n" if  ! warnings::enabled('all') ;
319  print "ok2\n" if  warnings::enabled("syntax") ;
320  print "ok3\n" if  warnings::enabled("io") ;
321  print "ok4\n" if  ! warnings::enabled("misc") ;
322}
3231;
324--FILE--
325use warnings 'syntax' ;
326use abc ;
327sub fred { use warnings 'io'  ; abc::check() }
328fred() ;
329EXPECT
330ok1
331ok2
332ok3
333ok4
334########
335
336# check warnings::warn
337use warnings ;
338eval {
339    warnings::warn()
340  } ;
341print $@ ;
342eval {
343  warnings::warn("fred", "joe")
344  } ;
345print $@ ;
346EXPECT
347Usage: warnings::warn([category,] 'message') at - line 5
348Unknown warnings category 'fred' at - line 9
349########
350
351# check warnings::warnif
352use warnings ;
353eval {
354  warnings::warnif()
355} ;
356print $@ ;
357eval {
358  warnings::warnif("fred", "joe")
359} ;
360print $@ ;
361EXPECT
362Usage: warnings::warnif([category,] 'message') at - line 5
363Unknown warnings category 'fred' at - line 9
364########
365
366--FILE-- abc.pm
367package abc ;
368use warnings 'misc' ;
369sub check { warnings::warn("io", "hello") }
3701;
371--FILE--
372use warnings "io" ;
373use abc;
374abc::check() ;
375EXPECT
376hello at - line 3
377########
378
379--FILE-- abc.pm
380package abc ;
381use warnings 'misc' ;
382sub check { warnings::warn("misc", "hello") }
3831;
384--FILE--
385use warnings "io" ;
386use abc;
387abc::check() ;
388EXPECT
389hello at - line 3
390########
391
392--FILE-- abc.pm
393package abc ;
394use warnings 'misc' ;
395sub check { warnings::warn("io", "hello") }
3961;
397--FILE--
398use warnings qw( FATAL deprecated ) ;
399use abc;
400eval {
401    abc::check() ;
402  } ;
403print "[[$@]]\n";
404EXPECT
405hello at - line 4
406[[]]
407########
408
409--FILE-- abc.pm
410package abc ;
411use warnings 'misc' ;
412sub check { warnings::warn("io", "hello") }
4131;
414--FILE--
415use warnings qw( FATAL io ) ;
416use abc;
417eval {
418  abc::check() ;
419} ;
420print "[[$@]]\n";
421EXPECT
422[[hello at - line 4
423]]
424########
425-W
426--FILE-- abc.pm
427package abc ;
428use warnings "io" ;
429print "ok1\n" if warnings::enabled("io") ;
430print "ok2\n" if warnings::enabled("all") ;
4311;
432--FILE--
433no warnings;
434use abc ;
435EXPECT
436ok1
437ok2
438########
439-X
440--FILE-- abc.pm
441package abc ;
442use warnings "io" ;
443print "ok1\n" if !warnings::enabled("io") ;
444print "ok2\n" if !warnings::enabled("all") ;
4451;
446--FILE--
447use warnings;
448use abc ;
449EXPECT
450ok1
451ok2
452########
453
454--FILE-- abc.pm
455package abc ;
456no warnings ;
457sub check {
458  print "ok\n" if ! warnings::enabled() ;
459}
4601;
461--FILE--
462use warnings 'syntax' ;
463use abc ;
464abc::check() ;
465EXPECT
466package 'abc' not registered for warnings at abc.pm line 4
467########
468
469--FILE-- abc.pm
470package abc ;
471no warnings ;
472sub check {
473  warnings::warn("fred") ;
474}
4751;
476--FILE--
477use warnings 'syntax' ;
478use abc ;
479abc::check() ;
480EXPECT
481package 'abc' not registered for warnings at abc.pm line 4
482########
483
484--FILE-- abc.pm
485package abc ;
486no warnings ;
487sub check {
488  warnings::warnif("fred") ;
489}
4901;
491--FILE--
492use warnings 'syntax' ;
493use abc ;
494abc::check() ;
495EXPECT
496package 'abc' not registered for warnings at abc.pm line 4
497########
498
499--FILE-- abc.pm
500package abc ;
501use warnings 'io' ;
502use warnings::register ;
503sub check {
504  print "ok1\n" if  warnings::enabled ;
505  print "ok2\n" if  warnings::enabled("syntax") ;
506  print "ok3\n" if !warnings::enabled("io") ;
507}
5081;
509--FILE--
510use warnings 'syntax' ;
511use abc ;
512use warnings 'abc' ;
513abc::check() ;
514EXPECT
515ok1
516ok2
517ok3
518########
519
520--FILE-- abc.pm
521package abc ;
522use warnings 'io' ;
523use warnings::register ;
524sub check {
525  print "ok1\n" if !warnings::enabled ;
526  print "ok2\n" if  warnings::enabled("syntax") ;
527  print "ok3\n" if !warnings::enabled("io") ;
528}
5291;
530--FILE--
531use warnings 'syntax' ;
532use abc ;
533abc::check() ;
534EXPECT
535ok1
536ok2
537ok3
538########
539
540--FILE-- abc.pm
541package abc ;
542no warnings ;
543use warnings::register ;
544sub check {
545  print "ok1\n" if warnings::enabled ;
546  print "ok2\n" if warnings::enabled("syntax") ;
547}
5481;
549--FILE--
550use warnings 'syntax' ;
551use abc ;
552use warnings 'abc' ;
553eval { abc::check() ; };
554print $@ ;
555EXPECT
556ok1
557ok2
558########
559
560--FILE-- abc.pm
561package abc ;
562use warnings 'io' ;
563use warnings::register ;
564sub check {
565  print "ok1\n" if !warnings::enabled ;
566  print "ok2\n" if  warnings::enabled("syntax") ;
567  print "ok3\n" if !warnings::enabled("io") ;
568}
5691;
570--FILE--
571use warnings 'syntax' ;
572use abc ;
573eval { abc::check() ; } ;
574print $@ ;
575EXPECT
576ok1
577ok2
578ok3
579########
580
581--FILE-- abc.pm
582package abc ;
583use warnings 'io' ;
584use warnings::register ;
585sub check {
586  print "ok1\n" if  warnings::enabled ;
587  print "ok2\n" if  warnings::enabled("syntax") ;
588  print "ok3\n" if !warnings::enabled("io") ;
589}
5901;
591--FILE--
592use warnings 'syntax' ;
593use abc ;
594use warnings 'abc' ;
595sub fred { abc::check() }
596fred() ;
597EXPECT
598ok1
599ok2
600ok3
601########
602
603--FILE-- abc.pm
604package abc ;
605use warnings 'io' ;
606use warnings::register ;
607sub check {
608  print "ok1\n" if  ! warnings::enabled ;
609}
6101;
611--FILE--
612use warnings 'syntax' ;
613use abc ;
614sub fred { no warnings ; abc::check() }
615fred() ;
616EXPECT
617ok1
618########
619
620--FILE-- abc.pm
621package abc ;
622use warnings 'misc' ;
623use warnings::register;
624sub check {
625  print "ok1\n" if  warnings::enabled ;
626  print "ok2\n" if  warnings::enabled("syntax") ;
627  print "ok3\n" if  warnings::enabled("io") ;
628  print "ok4\n" if  ! warnings::enabled("misc") ;
629}
6301;
631--FILE--
632use warnings 'syntax' ;
633use abc ;
634use warnings 'abc' ;
635sub fred { use warnings 'io'  ; abc::check() }
636fred() ;
637EXPECT
638ok1
639ok2
640ok3
641ok4
642########
643
644--FILE-- abc.pm
645package abc ;
646use warnings 'misc' ;
647use warnings::register;
648sub check { warnings::warn("hello") }
6491;
650--FILE--
651use abc;
652use warnings "abc" ;
653abc::check() ;
654EXPECT
655hello at - line 3
656########
657
658--FILE-- abc.pm
659package abc ;
660use warnings::register;
661sub check { warnings::warn("hello") }
6621;
663--FILE--
664use abc;
665abc::check() ;
666EXPECT
667hello at - line 2
668########
669
670--FILE-- abc.pm
671package abc ;
672use warnings::register ;
673sub check { warnings::warn("hello") }
6741;
675--FILE--
676use abc;
677use warnings qw( FATAL deprecated ) ;
678eval {
679    abc::check() ;
680  } ;
681print "[[$@]]\n";
682EXPECT
683hello at - line 4
684[[]]
685########
686
687--FILE-- abc.pm
688package abc ;
689use warnings::register ;
690sub check { warnings::warn("hello") }
6911;
692--FILE--
693use abc;
694use warnings qw( FATAL abc ) ;
695eval {
696  abc::check() ;
697  } ;
698print "[[$@]]\n";
699EXPECT
700[[hello at - line 4
701]]
702########
703-W
704--FILE-- abc.pm
705package abc ;
706use warnings "io" ;
707use warnings::register ;
708sub check {
709  print "ok1\n" if warnings::enabled() ;
710  print "ok2\n" if warnings::enabled("io") ;
711  print "ok3\n" if warnings::enabled("all") ;
712}
7131;
714--FILE--
715no warnings;
716use abc ;
717abc::check() ;
718EXPECT
719ok1
720ok2
721ok3
722########
723-X
724--FILE-- abc.pm
725package abc ;
726use warnings "io" ;
727use warnings::register ;
728sub check {
729  print "ok1\n" if !warnings::enabled() ;
730  print "ok2\n" if !warnings::enabled("io") ;
731  print "ok3\n" if !warnings::enabled("all") ;
732}
7331;
734--FILE--
735no warnings;
736use abc ;
737abc::check() ;
738EXPECT
739ok1
740ok2
741ok3
742########
743
744--FILE-- abc.pm
745package abc ;
746use warnings "io" ;
747use warnings::register ;
748sub check {
749  print "ok1\n" if warnings::enabled() ;
750  print "ok2\n" if warnings::enabled("io") ;
751  print "ok3\n" if warnings::enabled("all") ;
752}
7531;
754--FILE--
755use warnings 'all';
756use abc ;
757abc::check() ;
758EXPECT
759ok1
760ok2
761ok3
762########
763
764--FILE-- abc.pm
765package abc ;
766use warnings "io" ;
767use warnings::register ;
768sub check {
769  print "ok1\n" if !warnings::enabled() ;
770  print "ok2\n" if !warnings::enabled("io") ;
771  print "ok3\n" if !warnings::enabled("all") ;
772}
7731;
774--FILE--
775use abc ;
776no warnings ;
777abc::check() ;
778EXPECT
779ok1
780ok2
781ok3
782########
783
784--FILE-- abc.pm
785package abc ;
786use warnings "io" ;
787use warnings::register ;
788sub check {
789  print "ok1\n" if !warnings::enabled() ;
790  print "ok2\n" if !warnings::enabled("io") ;
791  print "ok3\n" if !warnings::enabled("all") ;
792  warnings::warnif("my message 1") ;
793  warnings::warnif('abc', "my message 2") ;
794  warnings::warnif('io', "my message 3") ;
795  warnings::warnif('all', "my message 4") ;
796}
7971;
798--FILE--
799use abc ;
800use warnings 'abc';
801no warnings ;
802abc::check() ;
803EXPECT
804ok1
805ok2
806ok3
807########
808
809--FILE-- abc.pm
810package abc ;
811use warnings "io" ;
812use warnings::register ;
813sub check {
814  print "abc self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
815  print "abc def"  . (warnings::enabled('def') ? "" : " not") . " enabled\n" ;
816  print "abc all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
817}
8181;
819--FILE-- def.pm
820package def ;
821use warnings "io" ;
822use warnings::register ;
823sub check {
824  print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
825  print "def abc"  . (warnings::enabled('abc') ? "" : " not") . " enabled\n" ;
826  print "def all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
827}
8281;
829--FILE--
830use abc ;
831use def ;
832use warnings 'abc';
833abc::check() ;
834def::check() ;
835no warnings 'abc'  ;
836use warnings 'def'  ;
837abc::check() ;
838def::check() ;
839use warnings 'abc'  ;
840use warnings 'def'  ;
841abc::check() ;
842def::check() ;
843no warnings 'abc'  ;
844no warnings 'def'  ;
845abc::check() ;
846def::check() ;
847use warnings;
848abc::check() ;
849def::check() ;
850no warnings 'abc' ;
851abc::check() ;
852def::check() ;
853EXPECT
854abc self enabled
855abc def not enabled
856abc all not enabled
857def self not enabled
858def abc enabled
859def all not enabled
860abc self not enabled
861abc def enabled
862abc all not enabled
863def self enabled
864def abc not enabled
865def all not enabled
866abc self enabled
867abc def enabled
868abc all not enabled
869def self enabled
870def abc enabled
871def all not enabled
872abc self not enabled
873abc def not enabled
874abc all not enabled
875def self not enabled
876def abc not enabled
877def all not enabled
878abc self enabled
879abc def enabled
880abc all enabled
881def self enabled
882def abc enabled
883def all enabled
884abc self not enabled
885abc def enabled
886abc all not enabled
887def self enabled
888def abc not enabled
889def all not enabled
890########
891-w
892--FILE-- abc.pm
893package abc ;
894no warnings ;
895use warnings::register ;
896sub check {
897  print "ok1\n" if warnings::enabled() ;
898  print "ok2\n" if warnings::enabled("io") ;
899  print "ok3\n" if warnings::enabled("all") ;
900}
9011;
902--FILE--
903use abc ;
904abc::check() ;
905EXPECT
906ok1
907ok2
908ok3
909########
910-w
911--FILE-- abc.pm
912package abc ;
913no warnings ;
914use warnings::register ;
915sub check {
916  print "ok1\n" if !warnings::enabled() ;
917  print "ok2\n" if !warnings::enabled("io") ;
918  print "ok3\n" if !warnings::enabled("all") ;
919}
9201;
921--FILE--
922use abc ;
923use warnings 'abc';
924no warnings ;
925abc::check() ;
926EXPECT
927ok1
928ok2
929ok3
930########
931
932--FILE-- abc.pm
933package abc ;
934no warnings ;
935use warnings::register ;
936sub check {
937  print "ok1\n" if !warnings::enabled() ;
938  print "ok2\n" if !warnings::enabled("io") ;
939  print "ok3\n" if !warnings::enabled("all") ;
940  warnings::warnif("my message 1") ;
941  warnings::warnif('abc', "my message 2") ;
942  warnings::warnif('io', "my message 3") ;
943  warnings::warnif('all', "my message 4") ;
944}
9451;
946--FILE--
947use abc ;
948use warnings 'abc';
949no warnings ;
950BEGIN { $^W = 1 ; }
951abc::check() ;
952EXPECT
953ok1
954ok2
955ok3
956########
957
958--FILE-- abc.pm
959package abc ;
960no warnings ;
961use warnings::register ;
962sub check {
963  print "ok1\n" if !warnings::enabled() ;
964  print "ok2\n" if !warnings::enabled("io") ;
965  print "ok3\n" if !warnings::enabled("all") ;
966}
9671;
968--FILE--
969use abc ;
970use warnings 'abc';
971no warnings ;
972$^W = 1 ;
973abc::check() ;
974EXPECT
975ok1
976ok2
977ok3
978########
979
980--FILE-- abc.pm
981$| = 1;
982package abc ;
983no warnings ;
984use warnings::register ;
985sub check {
986  print "ok1\n" if  warnings::enabled() ;
987  print "ok2\n" if !warnings::enabled("io") ;
988  print "ok3\n" if !warnings::enabled("all") ;
989  print "ok4\n" if  warnings::enabled("abc") ;
990  warnings::warn("my message 1") ;
991  warnings::warnif("my message 2") ;
992  warnings::warnif('abc', "my message 3") ;
993  warnings::warnif('io', "my message 4") ;
994  warnings::warnif('all', "my message 5") ;
995}
996sub in2 { no warnings ; check() }
997sub in1 { no warnings ; in2() }
9981;
999--FILE--
1000use abc ;
1001use warnings 'abc';
1002abc::in1() ;
1003EXPECT
1004ok1
1005ok2
1006ok3
1007ok4
1008my message 1 at - line 3
1009my message 2 at - line 3
1010my message 3 at - line 3
1011########
1012
1013--FILE-- def.pm
1014package def ;
1015no warnings ;
1016use warnings::register ;
1017sub check {
1018  print "ok1\n" if  warnings::enabled() ;
1019  print "ok2\n" if !warnings::enabled("io") ;
1020  print "ok3\n" if !warnings::enabled("all") ;
1021  print "ok4\n" if  warnings::enabled("def") ;
1022  warnings::warn("my message 1") ;
1023  warnings::warnif("my message 2") ;
1024  warnings::warnif('def', "my message 3") ;
1025  warnings::warnif('io', "my message 4") ;
1026  warnings::warnif('all', "my message 5") ;
1027}
1028sub in2 { no warnings ; check() }
1029sub in1 { no warnings ; in2() }
10301;
1031--FILE-- abc.pm
1032$| = 1;
1033package abc ;
1034use def ;
1035use warnings 'def';
1036sub in1 { def::in1() ; }
10371;
1038--FILE--
1039use abc ;
1040no warnings;
1041abc::in1() ;
1042EXPECT
1043ok1
1044ok2
1045ok3
1046ok4
1047my message 1 at abc.pm line 5
1048my message 2 at abc.pm line 5
1049my message 3 at abc.pm line 5
1050########
1051
1052--FILE-- def.pm
1053$| = 1;
1054package def ;
1055no warnings ;
1056use warnings::register ;
1057require Exporter;
1058@ISA = qw( Exporter ) ;
1059@EXPORT = qw( in1 ) ;
1060sub check {
1061  print "ok1\n" if  warnings::enabled() ;
1062  print "ok2\n" if !warnings::enabled("io") ;
1063  print "ok3\n" if !warnings::enabled("all") ;
1064  print "ok4\n" if  warnings::enabled("abc") ;
1065  print "ok5\n" if !warnings::enabled("def") ;
1066  warnings::warn("my message 1") ;
1067  warnings::warnif("my message 2") ;
1068  warnings::warnif('abc', "my message 3") ;
1069  warnings::warnif('def', "my message 4") ;
1070  warnings::warnif('io', "my message 5") ;
1071  warnings::warnif('all', "my message 6") ;
1072}
1073sub in2 { no warnings ; check() }
1074sub in1 { no warnings ; in2() }
10751;
1076--FILE-- abc.pm
1077package abc ;
1078use warnings::register ;
1079use def ;
1080#@ISA = qw(def) ;
10811;
1082--FILE--
1083use abc ;
1084no warnings;
1085use warnings 'abc';
1086abc::in1() ;
1087EXPECT
1088ok2
1089ok3
1090ok4
1091ok5
1092my message 1 at - line 4
1093my message 3 at - line 4
1094########
1095
1096--FILE-- def.pm
1097package def ;
1098no warnings ;
1099use warnings::register ;
1100
1101sub new
1102{
1103    my $class = shift ;
1104    bless [], $class ;
1105}
1106
1107sub check
1108{
1109  my $self = shift ;
1110  print "ok1\n" if !warnings::enabled() ;
1111  print "ok2\n" if !warnings::enabled("io") ;
1112  print "ok3\n" if !warnings::enabled("all") ;
1113  print "ok4\n" if  warnings::enabled("abc") ;
1114  print "ok5\n" if !warnings::enabled("def") ;
1115  print "ok6\n" if  warnings::enabled($self) ;
1116
1117  warnings::warn("my message 1") ;
1118  warnings::warn($self, "my message 2") ;
1119
1120  warnings::warnif("my message 3") ;
1121  warnings::warnif('abc', "my message 4") ;
1122  warnings::warnif('def', "my message 5") ;
1123  warnings::warnif('io', "my message 6") ;
1124  warnings::warnif('all', "my message 7") ;
1125  warnings::warnif($self, "my message 8") ;
1126}
1127sub in2
1128{
1129  no warnings ;
1130  my $self = shift ;
1131  $self->check() ;
1132}
1133sub in1
1134{
1135  no warnings ;
1136  my $self = shift ;
1137  $self->in2();
1138}
11391;
1140--FILE-- abc.pm
1141$| = 1;
1142package abc ;
1143use warnings::register ;
1144use def ;
1145@ISA = qw(def) ;
1146sub new
1147{
1148    my $class = shift ;
1149    bless [], $class ;
1150}
1151
11521;
1153--FILE--
1154use abc ;
1155no warnings;
1156use warnings 'abc';
1157$a = new abc ;
1158$a->in1() ;
1159print "**\n";
1160$b = new def ;
1161$b->in1() ;
1162EXPECT
1163ok1
1164ok2
1165ok3
1166ok4
1167ok5
1168ok6
1169my message 1 at - line 5
1170my message 2 at - line 5
1171my message 4 at - line 5
1172my message 8 at - line 5
1173**
1174ok1
1175ok2
1176ok3
1177ok4
1178ok5
1179my message 1 at - line 8
1180my message 2 at - line 8
1181my message 4 at - line 8
1182