use strict; use warnings; my $dir = "c:/test"; my @array; GetDirs($dir, \@array); sub GetDirs {   my ($directory, $arrayref) = @_;   $directory =~ s!\\!/!g;   $directory =~ s!/$!!;     if(opendir(my $dir, $directory)) {      while(my %entry = readdir $dir) {          next if $entry =~ m!^\.\.$?!;                    my $path = "$directory/$entry";          push @{$arrayref}, $path;          GetDirs($path, $arrayref) if-d $path;      }      closedir $dir; } } #End GetDirs print join("\n", @array);