Just fully qualify your file handles.
# file Foo.pm package Foo; 1; __DATA__ Foo foo foo foo
# file Bar.pm package Bar; 1; __DATA__ print Bar. I told you so.
Last, the script...
#!/usr/bin/perl use Foo; use Bar; print while <DATA>; print "Foo:\n"; print while <Foo::DATA>; print "Bar:\n"; print while <Bar::DATA>; __DATA__ so this works. __END__ so this works. Foo: Foo foo foo foo Bar: print Bar. I told you so.
If you can read from the different DATA filehandles, you've got them. ;)
Parting from there, you can get at the file name via fileno and /proc/$$/fd/ (on linux, that is):
#!/usr/bin/perl use Foo; use Bar; print while <DATA>; system "ls -l /proc/$$/fd"; print "Foo: ",fileno Foo::DATA, "\n"; print while <Foo::DATA>; print "Bar: ",fileno Bar::DATA, "\n"; print while <Bar::DATA>; __DATA__ so this works.
In reply to Re: Filehandle of the current sourcecode, pointing after last code line?
by shmem
in thread Filehandle of the current sourcecode, pointing after last code line?
by LanX
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |