Alb*_*haw 2 perl glob filesize
我正在尝试检查我的文件夹中是否为空(0字节)的文件.我有大约1200个文件,所以Perl将使这个任务非常容易:)
到目前为止,这是我的代码,但它似乎不起作用.(它只列出了所有文件.)任何人都可以教我做错了什么吗?谢谢!
#!/usr/bin/perl
@files = glob('*');
if ((-s @files) == 0) {
print"@files\n";
}
Run Code Online (Sandbox Code Playgroud)
你做了一个检查,但你有多个文件.显然,这毫无意义.您需要添加一个循环来检查每个文件.
#!/usr/bin/perl
use strict;
use warnings;
my @files = grep { -s $_ == 0 } glob('*');
# or: grep { ! -s $_ }
# or: grep { -z $_ }
# or: grep { -z }
# or: grep -z,
print "@files\n";
Run Code Online (Sandbox Code Playgroud)
在您的版本中,您试图获取所命名文件的大小12或者是什么元素的@files数量.结果,-s回来undef了$!{ENOENT}.