Я пишу Perl-скрипт (в Windows), который использует File :: Find для индексирования сетевой файловой системы. Это прекрасно работает, но сканирование файловой системы занимает очень много времени. Я подумал, что было бы неплохо как-то получить контрольную сумму каталога перед его обходом, и если контрольная сумма совпадает с контрольной суммой, полученной при предыдущем запуске, не проходите через каталог. Это исключило бы большую обработку, так как файлы в этой файловой системе меняются не часто.
В моем AIX я использую эту команду:
csum -h MD5 /directory
, который возвращает что-то вроде этого:
5cfe4faf4ad739219b6140054005d506 /directory
Команда занимает очень мало времени:
time csum -h MD5 /directory
5cfe4faf4ad739219b6140054005d506 /directory
real 0m0.00s
user 0m0.00s
sys 0m0.00s
Я искал CPAN для модуля, который будет делать это, но похоже, что все модули будут давать мне сумму MD5 для каждого файла в каталоге, а не для самого каталога.
Есть ли способ получить сумму MD5 для каталога в Perl или даже в Windows, если я могу вызвать команду Win32 из Perl?
Заранее спасибо!