Thank you for the help and information. And from now on I will expect me and others to close DATA on finishing with it.
Here is what happens when 2 separate packages leave their DATA opened. warn reports only the last one being opened. Is it because the interpreter will detect opened DATA and localise it?
package X; while(<DATA>){ print "X:".$_ } #close(DATA); sub check_data { return defined fileno(DATA) } 1; __DATA__ 1 2 3
package Y; while(<DATA>){ print "Y:".$_ } #close(DATA); sub check_data { return defined fileno(DATA) } 1; __DATA__ 10 20 30 40 50 60
# main use lib '.'; use strict; use warnings; use X; use Y; warn "hehh"; print "X opened: ".X::check_data() ."\n"."Y opened: ".Y::check_data() ."\n";
X:1 X:2 X:3 Y:10 Y:20 Y:30 Y:40 Y:50 Y:60 hehh at x.pm line 7, <DATA> line 6. Y opened: 1 Y opened: 1
In reply to Re: Do I need/want to close __DATA__?
by bliako
in thread Do I need/want to close __DATA__?
by bliako
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |