Most socket ops weren't warning for unopened handles unless 'closed' was enabled
[perl.git] / t / lib / warnings / pp_sys
1   pp_sys.c      AOK
2
3   untie attempted while %d inner references still exist [pp_untie]
4     sub TIESCALAR { bless [] } ; tie $a, 'main'; untie $a ;
5
6   fileno() on unopened filehandle abc           [pp_fileno]
7     $a = "abc"; fileno($a)
8
9   binmode() on unopened filehandle abc          [pp_binmode]
10     $a = "abc"; fileno($a)
11
12   printf() on unopened filehandle abc           [pp_prtf]
13     $a = "abc"; printf $a "fred"
14
15   Filehandle %s opened only for input           [pp_leavewrite]
16     format STDIN =
17     .
18     write STDIN;
19
20   write() on closed filehandle %s               [pp_leavewrite]
21     format STDIN =
22     .
23     close STDIN;
24     write STDIN ;
25
26   page overflow                                 [pp_leavewrite]
27
28   printf() on unopened filehandle abc           [pp_prtf]
29     $a = "abc"; printf $a "fred"
30
31   Filehandle %s opened only for input           [pp_prtf]
32     $a = "abc"; 
33     printf $a "fred"
34
35   printf() on closed filehandle %s              [pp_prtf]
36     close STDIN ;
37     printf STDIN "fred"
38
39   syswrite() on closed filehandle %s            [pp_send]
40     close STDIN; 
41     syswrite STDIN, "fred", 1;
42
43   send() on closed socket %s                    [pp_send]
44     close STDIN; 
45     send STDIN, "fred", 1
46
47   bind() on closed socket %s                    [pp_bind]
48     close STDIN; 
49     bind STDIN, "fred" ;
50
51
52   connect() on closed socket %s                 [pp_connect]
53     close STDIN; 
54     connect STDIN, "fred" ;
55
56   listen() on closed socket %s                  [pp_listen]
57     close STDIN; 
58     listen STDIN, 2;
59
60   accept() on closed socket %s                  [pp_accept]
61     close STDIN; 
62     accept "fred", STDIN ;
63
64   shutdown() on closed socket %s                [pp_shutdown]
65     close STDIN; 
66     shutdown STDIN, 0;
67
68   setsockopt() on closed socket %s              [pp_ssockopt]
69   getsockopt() on closed socket %s              [pp_ssockopt]
70     close STDIN; 
71     setsockopt STDIN, 1,2,3;
72     getsockopt STDIN, 1,2;
73
74   getsockname() on closed socket %s             [pp_getpeername]
75   getpeername() on closed socket %s             [pp_getpeername]
76     close STDIN; 
77     getsockname STDIN;
78     getpeername STDIN;
79
80   flock() on closed socket %s                   [pp_flock]
81   flock() on closed socket                      [pp_flock]
82     close STDIN;
83     flock STDIN, 8;
84     flock $a, 8;
85
86   warn(warn_nl, "stat");                        [pp_stat]
87
88   -T on closed filehandle %s
89   stat() on closed filehandle %s
90         close STDIN ; -T STDIN ; stat(STDIN) ;
91
92   warn(warn_nl, "open");                        [pp_fttext]
93     -T "abc\ndef" ;
94
95   Filehandle %s opened only for output          [pp_sysread]
96         my $file = "./xcv" ;
97         open(F, ">$file") ; 
98         my $a = sysread(F, $a,10) ;
99
100   lstat on filehandle %s                        [pp_lstat]
101
102   getc() on unopened filehandle                 [pp_getc]
103
104   getc() on closed filehandle                   [pp_getc]
105
106   Non-string passed as bitmask                  [pp_sselect]
107
108 __END__
109 # pp_sys.c [pp_untie]
110 use warnings 'untie' ;
111 sub TIESCALAR { bless [] } ; 
112 $b = tie $a, 'main'; 
113 untie $a ;
114 no warnings 'untie' ;
115 $c = tie $d, 'main'; 
116 untie $d ;
117 EXPECT
118 untie attempted while 1 inner references still exist at - line 5.
119 ########
120 # pp_sys.c [pp_leavewrite]
121 use warnings 'io' ;
122 format STDIN =
123 .
124 write STDIN;
125 no warnings 'io' ;
126 write STDIN;
127 EXPECT
128 Filehandle STDIN opened only for input at - line 5.
129 ########
130 # pp_sys.c [pp_leavewrite]
131 use warnings 'closed' ;
132 format STDIN =
133 .
134 format FOO =
135 .
136 close STDIN;
137 write STDIN;
138 write FOO;
139 opendir STDIN, ".";
140 write STDIN;
141 closedir STDIN;
142 opendir FOO, ".";
143 write FOO;
144 closedir FOO;
145 no warnings 'closed' ;
146 write STDIN;
147 write FOO;
148 opendir STDIN, ".";
149 opendir FOO, ".";
150 write STDIN;
151 write FOO;
152 EXPECT
153 write() on closed filehandle STDIN at - line 8.
154 write() on closed filehandle STDIN at - line 11.
155         (Are you trying to call write() on dirhandle STDIN?)
156 ########
157 ########
158 # pp_sys.c [pp_leavewrite]
159 use warnings 'unopened';
160 format STDIN =
161 .
162 format FOO =
163 .
164 close STDIN;
165 write STDIN;
166 write FOO;
167 opendir STDIN, ".";
168 write STDIN;
169 closedir STDIN;
170 opendir FOO, ".";
171 write FOO;
172 closedir FOO;
173 no warnings 'unopened';
174 write STDIN;
175 write FOO;
176 opendir STDIN, ".";
177 opendir FOO, ".";
178 write STDIN;
179 write FOO;
180 EXPECT
181 write() on unopened filehandle FOO at - line 10.
182 write() on unopened filehandle FOO at - line 15.
183         (Are you trying to call write() on dirhandle FOO?)
184 ########
185 # pp_sys.c [pp_leavewrite]
186 use warnings 'io' ;
187 format STDOUT_TOP =
188 abc
189 .
190 format STDOUT =
191 def
192 ghi
193 .
194 $= = 1 ;
195 $- =1 ;
196 open STDOUT, ">".($^O eq 'VMS'? 'NL:' : '/dev/null') ;
197 write ;
198 no warnings 'io' ;
199 write ;
200 EXPECT
201 page overflow at - line 13.
202 ########
203 # pp_sys.c [pp_prtf]
204 use warnings 'unopened' ;
205 $a = "abc"; 
206 printf $a "fred";
207 no warnings 'unopened' ;
208 printf $a "fred";
209 EXPECT
210 printf() on unopened filehandle abc at - line 4.
211 ########
212 # pp_sys.c [pp_prtf]
213 use warnings 'closed' ;
214 close STDIN ;
215 printf STDIN "fred";
216 opendir STDIN, ".";
217 printf STDIN "fred";
218 closedir STDIN;
219 no warnings 'closed' ;
220 printf STDIN "fred";
221 opendir STDIN, ".";
222 printf STDIN "fred";
223 EXPECT
224 printf() on closed filehandle STDIN at - line 4.
225 printf() on closed filehandle STDIN at - line 6.
226         (Are you trying to call printf() on dirhandle STDIN?)
227 ########
228 # pp_sys.c [pp_prtf]
229 use warnings 'io' ;
230 printf STDIN "fred";
231 no warnings 'io' ;
232 printf STDIN "fred";
233 EXPECT
234 Filehandle STDIN opened only for input at - line 3.
235 ########
236 # pp_sys.c [pp_send]
237 use warnings 'io' ;
238 syswrite STDIN, "fred";
239 no warnings 'io' ;
240 syswrite STDIN, "fred";
241 EXPECT
242 Filehandle STDIN opened only for input at - line 3.
243 ########
244 # pp_sys.c [pp_send]
245 use warnings 'closed' ;
246 close STDIN; 
247 syswrite STDIN, "fred", 1;
248 opendir STDIN, ".";
249 syswrite STDIN, "fred", 1;
250 closedir STDIN;
251 no warnings 'closed' ;
252 syswrite STDIN, "fred", 1;
253 opendir STDIN, ".";
254 syswrite STDIN, "fred", 1;
255 EXPECT
256 syswrite() on closed filehandle STDIN at - line 4.
257 syswrite() on closed filehandle STDIN at - line 6.
258         (Are you trying to call syswrite() on dirhandle STDIN?)
259 ########
260 # pp_sys.c [pp_flock]
261 use Config; 
262 BEGIN { 
263   if ( !$Config{d_flock} &&
264        !$Config{d_fcntl_can_lock} &&
265        !$Config{d_lockf} ) {
266     print <<EOM ;
267 SKIPPED
268 # flock not present
269 EOM
270     exit ;
271   } 
272 }
273 use warnings qw(unopened closed);
274 close STDIN;
275 flock STDIN, 8;
276 opendir STDIN, ".";
277 flock STDIN, 8;
278 flock FOO, 8;
279 flock $a, 8;
280 no warnings qw(unopened closed);
281 flock STDIN, 8;
282 opendir STDIN, ".";
283 flock STDIN, 8;
284 flock FOO, 8;
285 flock $a, 8;
286 EXPECT
287 flock() on closed filehandle STDIN at - line 16.
288 flock() on closed filehandle STDIN at - line 18.
289         (Are you trying to call flock() on dirhandle STDIN?)
290 flock() on unopened filehandle FOO at - line 19.
291 flock() on unopened filehandle at - line 20.
292 ########
293 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
294 use warnings 'closed';
295 use Config; 
296 BEGIN { 
297   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
298     print <<EOM ;
299 SKIPPED
300 # send not present
301 # bind not present
302 # connect not present
303 # accept not present
304 # shutdown not present
305 # setsockopt not present
306 # getsockopt not present
307 # getsockname not present
308 # getpeername not present
309 EOM
310     exit ;
311   } 
312 }
313 close STDIN; 
314 send STDIN, "fred", 1;
315 bind STDIN, "fred" ;
316 connect STDIN, "fred" ;
317 listen STDIN, 2;
318 accept "fred", STDIN;
319 shutdown STDIN, 0;
320 setsockopt STDIN, 1,2,3;
321 getsockopt STDIN, 1,2;
322 getsockname STDIN;
323 getpeername STDIN;
324 opendir STDIN, ".";
325 send STDIN, "fred", 1;
326 bind STDIN, "fred" ;
327 connect STDIN, "fred" ;
328 listen STDIN, 2;
329 accept "fred", STDIN;
330 shutdown STDIN, 0;
331 setsockopt STDIN, 1,2,3;
332 getsockopt STDIN, 1,2;
333 getsockname STDIN;
334 getpeername STDIN;
335 closedir STDIN;
336 send FOO, "fred", 1;
337 bind FOO, "fred" ;
338 connect FOO, "fred" ;
339 listen FOO, 2;
340 accept "fred", FOO;
341 shutdown FOO, 0;
342 setsockopt FOO, 1,2,3;
343 getsockopt FOO, 1,2;
344 getsockname FOO;
345 getpeername FOO;
346 opendir FOO, ".";
347 send FOO, "fred", 1;
348 bind FOO, "fred" ;
349 connect FOO, "fred" ;
350 listen FOO, 2;
351 accept "fred", FOO;
352 shutdown FOO, 0;
353 setsockopt FOO, 1,2,3;
354 getsockopt FOO, 1,2;
355 getsockname FOO;
356 getpeername FOO;
357 closedir FOO;
358 no warnings 'closed';
359 send STDIN, "fred", 1;
360 bind STDIN, "fred" ;
361 connect STDIN, "fred" ;
362 listen STDIN, 2;
363 accept STDIN, "fred" ;
364 shutdown STDIN, 0;
365 setsockopt STDIN, 1,2,3;
366 getsockopt STDIN, 1,2;
367 getsockname STDIN;
368 getpeername STDIN;
369 opendir STDIN, ".";
370 send STDIN, "fred", 1;
371 bind STDIN, "fred" ;
372 connect STDIN, "fred" ;
373 listen STDIN, 2;
374 accept "fred", STDIN;
375 shutdown STDIN, 0;
376 setsockopt STDIN, 1,2,3;
377 getsockopt STDIN, 1,2;
378 getsockname STDIN;
379 getpeername STDIN;
380 send FOO, "fred", 1;
381 bind FOO, "fred" ;
382 connect FOO, "fred" ;
383 listen FOO, 2;
384 accept FOO, "fred" ;
385 shutdown FOO, 0;
386 setsockopt FOO, 1,2,3;
387 getsockopt FOO, 1,2;
388 getsockname FOO;
389 getpeername FOO;
390 opendir FOO, ".";
391 send FOO, "fred", 1;
392 bind FOO, "fred" ;
393 connect FOO, "fred" ;
394 listen FOO, 2;
395 accept "fred", FOO;
396 shutdown FOO, 0;
397 setsockopt FOO, 1,2,3;
398 getsockopt FOO, 1,2;
399 getsockname FOO;
400 getpeername FOO;
401 EXPECT
402 send() on closed socket STDIN at - line 22.
403 bind() on closed socket STDIN at - line 23.
404 connect() on closed socket STDIN at - line 24.
405 listen() on closed socket STDIN at - line 25.
406 accept() on closed socket STDIN at - line 26.
407 shutdown() on closed socket STDIN at - line 27.
408 setsockopt() on closed socket STDIN at - line 28.
409 getsockopt() on closed socket STDIN at - line 29.
410 getsockname() on closed socket STDIN at - line 30.
411 getpeername() on closed socket STDIN at - line 31.
412 send() on closed socket STDIN at - line 33.
413         (Are you trying to call send() on dirhandle STDIN?)
414 bind() on closed socket STDIN at - line 34.
415         (Are you trying to call bind() on dirhandle STDIN?)
416 connect() on closed socket STDIN at - line 35.
417         (Are you trying to call connect() on dirhandle STDIN?)
418 listen() on closed socket STDIN at - line 36.
419         (Are you trying to call listen() on dirhandle STDIN?)
420 accept() on closed socket STDIN at - line 37.
421         (Are you trying to call accept() on dirhandle STDIN?)
422 shutdown() on closed socket STDIN at - line 38.
423         (Are you trying to call shutdown() on dirhandle STDIN?)
424 setsockopt() on closed socket STDIN at - line 39.
425         (Are you trying to call setsockopt() on dirhandle STDIN?)
426 getsockopt() on closed socket STDIN at - line 40.
427         (Are you trying to call getsockopt() on dirhandle STDIN?)
428 getsockname() on closed socket STDIN at - line 41.
429         (Are you trying to call getsockname() on dirhandle STDIN?)
430 getpeername() on closed socket STDIN at - line 42.
431         (Are you trying to call getpeername() on dirhandle STDIN?)
432 ########
433 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
434 use warnings 'unopened';
435 use Config; 
436 BEGIN { 
437   if ( $^O ne 'VMS' and ! $Config{d_socket}) {
438     print <<EOM ;
439 SKIPPED
440 # send not present
441 # bind not present
442 # connect not present
443 # accept not present
444 # shutdown not present
445 # setsockopt not present
446 # getsockopt not present
447 # getsockname not present
448 # getpeername not present
449 EOM
450     exit ;
451   } 
452 }
453 close STDIN; 
454 send STDIN, "fred", 1;
455 bind STDIN, "fred" ;
456 connect STDIN, "fred" ;
457 listen STDIN, 2;
458 accept "fred", STDIN;
459 shutdown STDIN, 0;
460 setsockopt STDIN, 1,2,3;
461 getsockopt STDIN, 1,2;
462 getsockname STDIN;
463 getpeername STDIN;
464 opendir STDIN, ".";
465 send STDIN, "fred", 1;
466 bind STDIN, "fred" ;
467 connect STDIN, "fred" ;
468 listen STDIN, 2;
469 accept "fred", STDIN;
470 shutdown STDIN, 0;
471 setsockopt STDIN, 1,2,3;
472 getsockopt STDIN, 1,2;
473 getsockname STDIN;
474 getpeername STDIN;
475 closedir STDIN;
476 send FOO, "fred", 1;
477 bind FOO, "fred" ;
478 connect FOO, "fred" ;
479 listen FOO, 2;
480 accept "fred", FOO;
481 shutdown FOO, 0;
482 setsockopt FOO, 1,2,3;
483 getsockopt FOO, 1,2;
484 getsockname FOO;
485 getpeername FOO;
486 opendir FOO, ".";
487 send FOO, "fred", 1;
488 bind FOO, "fred" ;
489 connect FOO, "fred" ;
490 listen FOO, 2;
491 accept "fred", FOO;
492 shutdown FOO, 0;
493 setsockopt FOO, 1,2,3;
494 getsockopt FOO, 1,2;
495 getsockname FOO;
496 getpeername FOO;
497 closedir FOO;
498 no warnings 'unopened';
499 send STDIN, "fred", 1;
500 bind STDIN, "fred" ;
501 connect STDIN, "fred" ;
502 listen STDIN, 2;
503 accept STDIN, "fred" ;
504 shutdown STDIN, 0;
505 setsockopt STDIN, 1,2,3;
506 getsockopt STDIN, 1,2;
507 getsockname STDIN;
508 getpeername STDIN;
509 opendir STDIN, ".";
510 send STDIN, "fred", 1;
511 bind STDIN, "fred" ;
512 connect STDIN, "fred" ;
513 listen STDIN, 2;
514 accept "fred", STDIN;
515 shutdown STDIN, 0;
516 setsockopt STDIN, 1,2,3;
517 getsockopt STDIN, 1,2;
518 getsockname STDIN;
519 getpeername STDIN;
520 send FOO, "fred", 1;
521 bind FOO, "fred" ;
522 connect FOO, "fred" ;
523 listen FOO, 2;
524 accept FOO, "fred" ;
525 shutdown FOO, 0;
526 setsockopt FOO, 1,2,3;
527 getsockopt FOO, 1,2;
528 getsockname FOO;
529 getpeername FOO;
530 opendir FOO, ".";
531 send FOO, "fred", 1;
532 bind FOO, "fred" ;
533 connect FOO, "fred" ;
534 listen FOO, 2;
535 accept "fred", FOO;
536 shutdown FOO, 0;
537 setsockopt FOO, 1,2,3;
538 getsockopt FOO, 1,2;
539 getsockname FOO;
540 getpeername FOO;
541 EXPECT
542 send() on unopened socket FOO at - line 44.
543 bind() on unopened socket FOO at - line 45.
544 connect() on unopened socket FOO at - line 46.
545 listen() on unopened socket FOO at - line 47.
546 accept() on unopened socket FOO at - line 48.
547 shutdown() on unopened socket FOO at - line 49.
548 setsockopt() on unopened socket FOO at - line 50.
549 getsockopt() on unopened socket FOO at - line 51.
550 getsockname() on unopened socket FOO at - line 52.
551 getpeername() on unopened socket FOO at - line 53.
552 send() on unopened socket FOO at - line 55.
553         (Are you trying to call send() on dirhandle FOO?)
554 bind() on unopened socket FOO at - line 56.
555         (Are you trying to call bind() on dirhandle FOO?)
556 connect() on unopened socket FOO at - line 57.
557         (Are you trying to call connect() on dirhandle FOO?)
558 listen() on unopened socket FOO at - line 58.
559         (Are you trying to call listen() on dirhandle FOO?)
560 accept() on unopened socket FOO at - line 59.
561         (Are you trying to call accept() on dirhandle FOO?)
562 shutdown() on unopened socket FOO at - line 60.
563         (Are you trying to call shutdown() on dirhandle FOO?)
564 setsockopt() on unopened socket FOO at - line 61.
565         (Are you trying to call setsockopt() on dirhandle FOO?)
566 getsockopt() on unopened socket FOO at - line 62.
567         (Are you trying to call getsockopt() on dirhandle FOO?)
568 getsockname() on unopened socket FOO at - line 63.
569         (Are you trying to call getsockname() on dirhandle FOO?)
570 getpeername() on unopened socket FOO at - line 64.
571         (Are you trying to call getpeername() on dirhandle FOO?)
572 ########
573 # pp_sys.c [pp_stat]
574 use warnings 'newline' ;
575 stat "abc\ndef";
576 no warnings 'newline' ;
577 stat "abc\ndef";
578 EXPECT
579 Unsuccessful stat on filename containing newline at - line 3.
580 ########
581 # pp_sys.c [pp_fttext]
582 use warnings qw(unopened closed) ;
583 close STDIN ; 
584 -T STDIN ;
585 stat(STDIN) ;
586 -T HOCUS;
587 stat(POCUS);
588 no warnings qw(unopened closed) ;
589 -T STDIN ;
590 stat(STDIN);
591 -T HOCUS;
592 stat(POCUS);
593 EXPECT
594 -T on closed filehandle STDIN at - line 4.
595 stat() on closed filehandle STDIN at - line 5.
596 -T on unopened filehandle HOCUS at - line 6.
597 stat() on unopened filehandle POCUS at - line 7.
598 ########
599 # pp_sys.c [pp_fttext]
600 use warnings 'newline' ;
601 -T "abc\ndef" ;
602 no warnings 'newline' ;
603 -T "abc\ndef" ;
604 EXPECT
605 Unsuccessful open on filename containing newline at - line 3.
606 ########
607 # pp_sys.c [pp_sysread]
608 use warnings 'io' ;
609 if ($^O eq 'dos') {
610     print <<EOM ;
611 SKIPPED
612 # skipped on dos
613 EOM
614     exit ;
615 }
616 my $file = "./xcv" ;
617 open(F, ">$file") ; 
618 my $a = sysread(F, $a,10) ;
619 no warnings 'io' ;
620 my $a = sysread(F, $a,10) ;
621 close F ;
622 use warnings 'io' ;
623 sysread(F, $a, 10);
624 read(F, $a, 10);
625 sysread(NONEXISTENT, $a, 10);
626 read(NONEXISTENT, $a, 10);
627 unlink $file ;
628 EXPECT
629 Filehandle F opened only for output at - line 12.
630 sysread() on closed filehandle F at - line 17.
631 read() on closed filehandle F at - line 18.
632 sysread() on unopened filehandle NONEXISTENT at - line 19.
633 read() on unopened filehandle NONEXISTENT at - line 20.
634 ########
635 # pp_sys.c [pp_binmode]
636 use warnings 'unopened' ;
637 binmode(BLARG);
638 $a = "BLERG";binmode($a);
639 EXPECT
640 binmode() on unopened filehandle BLARG at - line 3.
641 binmode() on unopened filehandle at - line 4.
642 ########
643 # pp_sys.c [pp_lstat]
644 use warnings 'io';
645 open FH, "../harness" or die "# $!";
646 lstat FH;
647 open my $fh, $0 or die "# $!";
648 lstat $fh;
649 no warnings 'io';
650 lstat FH;
651 lstat $fh;
652 close FH;
653 close $fh;
654 EXPECT
655 lstat() on filehandle FH at - line 4.
656 lstat() on filehandle $fh at - line 6.
657 ########
658 # pp_sys.c [pp_getc]
659 use warnings qw(unopened closed) ;
660 getc FOO;
661 close STDIN;
662 getc STDIN;
663 # Create an empty file
664 $file = 'getcwarn.tmp';
665 open FH1, ">$file" or die "# $!"; close FH1;
666 open FH2, $file    or die "# $!";
667 getc FH2; # Should not warn at EOF
668 close FH2;
669 getc FH2; # Warns, now
670 unlink $file;
671 no warnings qw(unopened closed) ;
672 getc FOO;
673 getc STDIN;
674 getc FH2;
675 EXPECT
676 getc() on unopened filehandle FOO at - line 3.
677 getc() on closed filehandle STDIN at - line 5.
678 getc() on closed filehandle FH2 at - line 12.
679 ########
680 # pp_sys.c [pp_sselect]
681 use warnings 'misc';
682 $x = 1;
683 select $x, undef, undef, 1;
684 no warnings 'misc';
685 select $x, undef, undef, 1;
686 EXPECT
687 Non-string passed as bitmask at - line 4.
688 ########
689 use Config;
690 BEGIN {
691     if (!$Config{d_fchdir}) {
692         print <<EOM;
693 SKIPPED
694 # fchdir not present
695 EOM
696         exit;
697     }
698 }
699 opendir FOO, '.'; closedir FOO;
700 open BAR, '.'; close BAR;
701 opendir $dh, '.'; closedir $dh;
702 open $fh, '.'; close $fh;
703 chdir FOO;
704 chdir BAR;
705 chdir $dh;
706 chdir $fh;
707 use warnings qw(unopened closed) ;
708 chdir FOO;
709 chdir BAR;
710 chdir $dh;
711 chdir $fh;
712 EXPECT
713 chdir() on unopened filehandle FOO at - line 20.
714 chdir() on closed filehandle BAR at - line 21.
715 chdir() on unopened filehandle $dh at - line 22.
716 chdir() on closed filehandle $fh at - line 23.
717 ########
718 # pp_sys.c [pp_open]
719 use warnings;
720 opendir FOO, ".";
721 opendir my $foo, ".";
722 open FOO, "../harness";
723 open $foo, "../harness";
724 no warnings qw(io deprecated);
725 open FOO, "../harness";
726 open $foo, "../harness";
727 EXPECT
728 Opening dirhandle FOO also as a file at - line 5.
729 Opening dirhandle $foo also as a file at - line 6.
730 ########
731 # pp_sys.c [pp_open_dir]
732 use warnings;
733 open FOO, "../harness";
734 open my $foo, "../harness";
735 opendir FOO, ".";
736 opendir $foo, ".";
737 no warnings qw(io deprecated);
738 opendir FOO, ".";
739 opendir $foo, ".";
740 EXPECT
741 Opening filehandle FOO also as a directory at - line 5.
742 Opening filehandle $foo also as a directory at - line 6.