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

时间:2018-09-04 14:43:38

标签: perl hash find

我试图遍历两个目录并比较每个文件并找到它们之间的差异 iam使用perl哈希保存文件名和数据的find命令显然失败了 我正在使用SunS 5.10, 下面的代码将在Linux OS上运行

  

失败的代码段

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.

1 个答案:

答案 0 :(得分:2)

这是因为operator precedence,您可以使用and代替&&

find( sub { -f and $files1{$_} = $File::Find::name }, $dir1);