in reply to Re: Unable to read files from a directory
in thread Unable to read files from a directory

done...again open fails! see this
#!/usr/bin/perl @files = <C:/Perl/bin/Anti/*>; foreach $file (@files){ print "$file \n"; # found to be ok....prints all the files... open(MYFILE,"<","C:/Perl/bin/Anti/$file") or die "Failed to open file: + $file:$! "; while(<MYFILE>) { print "$_ \n \n \n"; } }
it prints all the file names... I do not have any sub directories...but I used grep also... fails on file 1. gosh! hey...sorry for the earlier mistakes...I was lost in some world...the count is for some other purpose...was using a stupid method to see the counts of loops... and when I said opened, I meant all permissions... I am able to extract data from the individual files but when I run a loop for the folder, the files are not being opened...its acting weird! thanks for the assistance guys! much appreciated!

Replies are listed 'Best First'.
Re^3: Unable to read files from a directory
by graff (Chancellor) on May 14, 2009 at 06:26 UTC
    Regarding this latest version of your code, this attempt is failing because now you are populating "@files" with full path strings (because you are using th file glob operator, instead of readdir), and then you are appending the path again inside the foreach loop.

    Using the file glob is a good idea, so now just fix the open statement:

    #!/usr/bin/perl use strict; my @files = <C:/Perl/bin/Anti/*>; for my $file (@files) { my count = 0; open(MYFILE,"<",$file) or do { warn "Failed to open file: $file:$! +\n"; next}; while(<MYFILE>) { $count++; } print "$file has $count lines\n"; }
    BTW, I like proper indenting... don't you?