http://www.perlmonks.org?node_id=938938


in reply to Checking for Files

The problem that aaron_baugher pointed out is the main thing, but once you get past that, the script will take somewhat longer to run than it needs to, because you're calling the "stat" function multiple times on each file. I'd do it like this (not tested):
use strict; use warnings; use POSIX; use File::Spec; my $inputFile = "inputFileInfo.txt"; my $outputFile = strftime( "resultsFile_%Y-%m-%d_%H-%M-%S.txt", localt +ime(time())); my $pathToCheck = File::Spec->catfile( 'c:', 'temp' ); open( IN, '<', $inputFile ) or die "$inputFile: $!\n"; open( OUT, '>', $outputFile ) or die "$outputFile: $!\n"; while ( <IN> ) { chomp; my $checkFile = File::Spec->catfile( $pathToCheck, $_ ); my @stats = stat $checkFile; if ( @stats ) { printf OUT ( "%s: %d, %s\n", $checkFile, $stats[7], scalar( localtime( $stats[9] ))); } else { print OUT "$checkFile: stat failed (file not readable or not f +ound)\n"; } }