my @files = grep { !-d } @allfiles ; my @dirs = grep { -d } @allfiles ; #### my (@files,@dirs); for( @allfiles ){ if( -d catfile( $line , $_ ) ){ push @dirs,$_ } else { push @files,$_ } }