Can someone help me with this perl script. Currently my perl script is reading files recursively and checking if there is any file with size zero.If so it generates a log file. But instead of just generating a text file as log file, it should first create a directory and the name of the directory should be the one it is reading files from and then generate a log file in that directory. My directory structure: Main Directory/ sub directory/ folder 1 , folder 2... So it should create a directory as "sub directory/log.txt"
#!/usr/local/bin/perl #use strict; #use warnings; use File::Find ; $search = shift || 'c:\Documents and Settings\user\Desktop\batch' ; $outfile = 'C:\Documents and Settings\user\Desktop\output'; open OUTF, ">> $outfile/log.txt" or die print " can't create logfile; +$!"; find sub { push @dirs, $File::Find::name if -d }, $search ; for $dir ( @dirs ) { opendir $dh, $dir or do { warn "Cannot open '$dir' $!" ; next ; } ; opendir( DIR, "$dir" ) ; @files = readdir( DIR ) ; closedir( DIR ) ; foreach $file ( @files ) { if ( -f "$dir/$file") { $filesize = -s "$dir/$file" ; #if ( $file ne "empty.txt" && $file ne "sample.txt" ) { print OUTF "Warning: $dir/$file has size ZERO\n" if ( $filesize == "0" ) ; } } } closedir( $dh ) ; } close OUTF ; exit 0;
In reply to Working with the log files by manu_06
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |