in reply to File exists when confirmed in script but not when open is attempted by same script

You check if the file named by the value of $datafile is writable, then you try to open the file named $datafile which doesn't exist. Get rid of those quotes!

By the way, if you declared $x and $y where you actually gave them a value, you wouldn't be trying to print out variables you haven't initialized.

#!/usr/bin/perl -w use strict; use warnings; use lib "/usr/local/lib/perl/lib/perl5/site_perl/5.8.8"; use CGI::Carp qw(warningsToBrowser fatalsToBrowser); use CGI qw(:standard); print header; my $datafile = "/full/path/to/file/data.txt"; system('perl', '/full/path/to/file.cgi')==0 or die "system failed $?/$!"; open(my $fh, '<', $datafile) or die "Can't open file $datafile: $!\n"; chomp( my $x = <$fh> ); chomp( my $y = <$fh> ); print "$x<br>\n"; print "$y<br>\n";
  • Comment on Re: File exists when confirmed in script but not when open is attempted by same script
  • Select or Download Code

Replies are listed 'Best First'.
Re^2: File exists when confirmed in script but not when open is attempted by same script
by greymoose (Beadle) on Jun 12, 2009 at 03:29 UTC
    Doh! I thought it would be something stupid. Thanks for the help.
    Point taken about printing the uninitialized variables, too. The file is checked in the called script so it won't be in this one when it is complete, as a result the problem will cease to exist. Nonetheless I obviously need to be more observant. Thanks for the pointer.