Fantastic information. I was wondering though, you don't seem to be able to use the "filehandle" variable like a real file in a script. For example:
I have this beginnerish script
open my $fh2, '<', '/tmp/mlist.txt' or die "unable to open file '$file
+' for reading : $!";
open my $fh9, '>', '/tmp/listk.txt' or die "unable to open file '$file
+' for reading : $!";
while (<$fh2>) {
my @fields = split(',', $_);
local $" = ',';
if ($fields[2] eq '1' || $fields[2] eq '0') {
print $fh9 "@fields[4]\n" if /MONTHLY/ && !/,-,/;
}
}
close $fh2;
close $fh9;
This is clumsy but it works. However, if I try to use the variable assigned to a filehandle in the same way:
open my $bpfh1, '<', \$forbpjoutput or die $!;
while (<$bpfh1>) {
my @fields = split(',', $_);
my $fields;
local $" = ',';
if ($fields[2] eq '1' ||$fields[2] eq '0') {
print "THESE ARE THE>>> $fields[4]\n" if /MONTHLY/ && !/,
+-,/;
close $bpfh1;
}
}
it does work but what happens is that it never stops printing the "file" or the fields
4 It continues until out of memory. Is there a way to do this differently?
This is probably a very basic question, but I don't have much experience with filehandles which are variables.