use strict; use warnings; use IO::Dir; my %dir; tie %dir, 'IO::Dir', "."; foreach (keys %dir) { #print $_, " " , ($dir{$_}->mode & 0x8000),"\n"; if(!($dir{$_}->mode & 0x8000) && $_ ne "." && $_ ne "..") { print "$_\n"; `xcopy /E $_`; } }