http://qs321.pair.com?node_id=94120

Dalin has asked for the wisdom of the Perl Monks concerning the following question:

Hey all, I'm trying to port a script to win32 from a unix box. I'm running into trouble with a "bad file descrtiptor" when trying to close a file handle. Here is my code:
sub parse_mail { my $mail = $_[0]; print $mail; open (MAIL,$mail) || die "Cannot open $mail, $!"; @mailf = <MAIL>; chomp (@mailf); my $line; foreach $line (@mailf) { print $line; } print @mailf; close (MAIL) || die "Cannot close $mail, $!"; return @mailf; }
When the script gets to the  close (MAIL) I get an error stating
Cannot close C:/windows/desktop/tmp/test.f2mail, Bad file descriptor
The file stated in the error is correct and is what I'm looking for. I'm using forward slashes in the pathname... I've also used single quotes and "\\" to try and get the script to work, but no luck. The print $mail statement, I put in to watch the variable, displays the correct file and path name. I'm using ActiveState and Perl Builder. I would greatly appreciate any help anybody can offer. Thanks in advance for any help anyone can provide. Bradley
Where ever there is confusion to be had... I'll be there.