Are you trying to pass a filehandle to a subroutine? If so, there are a variety of methods you can use.
The first is, you can just not pass it. Filehandles are global. So you can just use it, like this:
sub foo {
open FILE, "file.txt";
bar();
close FILE;
}
sub bar {
my @lines = <FILE>;
# do something here
}
Second, you can open the filehandle as a variable and pass that. This is probably the best method.
sub foo {
open my $file, "file.txt";
bar($file);
close $file;
}
sub bar {
my ($file) = @_;
my @lines = <$file>;
# do something here
}
Lastly, I think you can use a typeglob. But I'm not sure how, and it'll be ugly. My advice would be to forget that I even mentioned it and use one of the other methods. But it's there if you need it.
elusion : http://matt.diephouse.com