sub get_directory{ my @dirs = glob("C:\\Documents and Settings\\mydirectory\\Desktop\\KOMP\\*"); foreach my $maid_dir(@dirs){ if (-d $maid_dir){ # directory check if ($maid_dir=~m%\d+\s[A-Z]%){ # match the dir name return $maid_dir; } } } } #### #!/usr/bin/perl -w use strict; my $dir = "C:/Documents and Settings/mydirectory/Desktop/KOMP"; opendir (D, $dir) || die "can't open directory $dir"; my @sub_dirs = grep {!/^\./ && -d "$dir/$_"}readdir D; print join("\n",@sub_dirs),"\n"; #### # #example: #@dir_names = get_sub_dirs($path); get_sub_dirs { my $dir = shift; opendir (D, $dir) || die "can't open directory $dir"; my @sub_dirs = grep{/^\d+\s[A-Z]/} grep {!/^\./ && -d "$dir/$_"}readdir D; return (@sub_dirs); }