Files
devops/perl/Examples/Chap4/dir-walk-iterator
2025-09-17 16:08:16 +08:00

26 lines
438 B
Plaintext

###
### dir_walk-iterator
###
## Chapter 4 section 2.2
# iterator version
sub dir_walk {
my @queue = shift;
return Iterator {
if (@queue) {
my $file = shift @queue;
if (-d $file) {
opendir my $dh, $file or next;
my @newfiles = grep {$_ ne "." && $_ ne ".."} readdir $dh;
push @queue, map "$file/$_", @newfiles;
}
return $file;
} else {
return;
}
};
}