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


in reply to readdir and recognizing difference between files and directories

You're testing the files and directories as if they were in your current working directory, not the one you're examining. Here's a version that would work:

#!/usr/bin/perl use strict; use warnings; my $dir = "D:/test_dir"; opendir( DIR, $dir); my @file_list = readdir(DIR); closedir(DIR); print "Decision whether it is a file or a directory:\n"; foreach ( @file_list ) { if( (-d "$dir/$_") ) { print "directory: " . $_ . "\n"; } if( (-f "$dir/$_") ) { print "file: " . $_ . "\n"; } } print "\n\n"; print "Just print everything:\n"; foreach ( @file_list ) { print $_ . "\n"; }

All dogma is stupid.