if FindFirst(IncludeTrailingPathDelimiter(d) + '*',
faAnyFile and (not faDirectory), SR) = 0 then
repeat
x.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);
use File::Basename;
my @x = map {basename $_} glob("$d/*");
opendir my $dh, $d or die "Could not open $d for reading: $!\n";
@x = readdir $dh;
closedir $dh;
if FindFirst(IncludeTrailingPathDelimiter(d) + '*',
faAnyFile and (not faDirectory), SR) = 0 then
repeat
x.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);