我试图遍历两个目录并比较每个文件并找到它们之间的差异 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.
答案 0 :(得分:2)
这是因为operator precedence,您可以使用and
代替&&
:
find( sub { -f and $files1{$_} = $File::Find::name }, $dir1);