我正在寻找目录中的文件。如果我找不到该文件,我想将该文件的名称发送到一个数组,这样当循环完成时,我将有一个未找到的文件数组。我如何在Perl中编写代码?
foreach $missing (@miss) {
chomp $missing;
($a,$b)=split(/\.m_inproc./,$missing);
@find = `find /home1/users/virtual/ -name .m_inproc.$b`;
$find_size = scalar @find;
$flag = "/home1/t01jkxj/check_st/flags/$b";
if ($find_size < 1 && -e $flag) {
$doit = `$b > @re_missing`;
}
}
这是我的搜索代码,如果找不到文件($find_size
小于1)并且有一个标记文件(意味着我们之前已完成此搜索)。我想将变量$b
(文件名)写入数组。显然,我目前($doit =
的语法不正确。会是什么?谢谢!$b > @re_missing
;)
答案 0 :(得分:1)
答案 1 :(得分:0)
不确定您的代码的完整上下文,但此代码 - 与您已经实现的文件大小检查相结合 - 应该让您走上正确的轨道。这里简短的回答是“USE PUSH”,但我觉得要编码,所以如果这会导致不必要的阅读并且“使用推送”就足够了,那就很抱歉。
#usr/bin/perl
use strict;
use warnings;
my @files = ("tester.txt", "pooter.txt", "output.txt");
my @notfound;
foreach(@files)
{
if (!(-e $_))
{
push (@notfound, $_);
}
}
foreach(@notfound)
{
print $_;
}
答案 2 :(得分:0)
my @missing_files = grep { ! -e } @files_to_search_for;