1
我使用Perl的模塊File :: Find遍歷目錄。 該目錄是具有目錄.snapshot的NFS共享。 在此文件夾中有昨天文件結構的快照,因此它在結果中具有相同名稱的目錄。 因此,我得到以下錯誤:
Perl文件::查找重複名稱
[folder_in_which_find_is_executed].snapshot/sv_daily.0 encountered a second time at /usr/lib/perl5/5.8.8/File/Find.pm line 566.
是否有辦法防止這種情況發生例如通過刪除重複的條目?
這是代碼子執行查找:
sub process()
{
my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
$atime, $mtime, $ctime, $blksize, $blocks) = stat $_;
my $type = (-f _ ? 'f' : (-d _ ? 'd' : '*'));
my ($md5sum);
if (!defined $dev)
{
if (-l $_)
{
die "Broken symbolic link: $File::Find::name";
} else {
die "Error processing $type '$File::Find::name'";
}
}
my $name = $File::Find::name;
$name =~ s|^\.\/?||;
if ($name ne '')
{
$db->{$name} = {
name => $name,
mode => sprintf("%04o", $mode & 07777),
user_id => $uid,
group_id => $gid,
last_modified => $mtime,
type => $type
};
if ($type eq 'f')
{
$db->{$name}->{size} = $size;
$db->{$name}->{inode} = $ino;
$md5sum = SumForEntry($name, $_);
$db->{$name}->{md5sum} = $md5sum;
}
}
}
以下行執行這個子:
find({ wanted => \&process, follow => 1}, '.');
有人可以幫我嗎?
庫存問題:爲什麼使用空的原型? – Hugmeir 2010-12-21 15:08:55
@Hugmeir:爲什麼不呢? File :: Find手冊中說_The想要的函數不需要參數,而是通過一系列變量來完成它的工作。@ – 2010-12-21 16:18:39