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


in reply to cant open files from a directory

parv++

readdir(D) gives only the file names, if you included the $! in the file open function it could have given you the "oops No such file or directory" error message, in the file open function give the absolute path to open the file.

Here is the code I checked.

my $handle=$ARGV[0]; opendir(D,$handle) or die "cannot open $!"; my @files=readdir(D); print "@files\n"; foreach my $file(@files) { open (MYFILE,"$handle/$file") or die "oops $!"; while(<MYFILE>) { print $_; } } closedir(D);


All is well

Replies are listed 'Best First'.
Re^2: cant open files from a directory
by x-lours (Sexton) on Jan 31, 2014 at 15:15 UTC

    readdir gives not only the file names but also the directory names present inside your $handle.

    open (IN, "$handle/$file") on a directory will give you an error of course ;-)

    you will have to test $file for being a file before opening it.

      A directory is also a file.