Сравните все файлы в двух каталогах, используя команду find в sunOS - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь пройтись по двум каталогам, сравнить каждый файл и найти различия в них Команда find, которую я использую для сохранения имен файлов и данных, использующих хэш perl, явно не работает Я использую 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);

Error

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 голосов
/ 04 сентября 2018

Это из-за приоритета оператора , вы можете использовать and вместо &&:

find( sub { -f and $files1{$_} = $File::Find::name }, $dir1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...