使用sunOS中的find命令比较两个目录中的所有文件

问题描述 投票:0回答:1

我试图在两个目录中遍历并比较每个文件并找出它们之间的差异我使用保存文件名和使用perl哈希数据的find命令显然是在使用SunS 5.10,下面的代码可以工作Linux操作系统

失败的代码片段

use strict;
use warnings;
use File::Find;

my (%files1, %files2);
my ($dir1, $dir2) = @ARGV;
find( sub { -f && $files1{$_} = $File::Find::name }, $dir1);
find( sub { -f && $files2{$_} = $File::Find::name }, $dir2);

错误

perl -c test_compare.pl
Can't modify logical and (&&) in scalar assignment at test_compare.pl line 9, near "$File::Find::name }"
test_compare.pl had compilation errors.
perl hash find
1个回答
2
投票

这是因为operator precedence,你可以使用and而不是&&

find( sub { -f and $files1{$_} = $File::Find::name }, $dir1);
© www.soinside.com 2019 - 2024. All rights reserved.