【发布时间】:2017-08-29 10:54:28
【问题描述】:
我是 perl 新手,打算检查一个文件夹是否为空。我找到了这个功能:
is_folder_empty {
my $dirname = shift;
opendir(my $dh, $dirname) or die "Not a directory";
return scalar(grep { $_ ne "." && $_ ne ".." } readdir($dh)) == 0;
}
它工作正常,但我不明白它为什么会这样做grep { $_ ne "." && $_ ne ".." }。这里.和..是什么意思?
【问题讨论】:
-
使用布尔代数,你或多或少是正确的,它可以改写为:
grep { not ( $_ eq '.' || $_ eq '..' ) }See 'De Morgans Law'
标签: perl