У меня есть сценарий, который использует Archive::Zip
, и я хочу использовать метод membersMatching
, но я не могу понять, что мне не хватает.Архив :: Zip membersMatching не удается найти способ в Perl?
я назвал модуль в начале сценария:
use Archive::Zip qw(:ERROR_CODES :CONSTANTS :MISC_CONSTANTS);
и это блок кода, в котором используется модуль:
while (my $file = readdir(TRIMMED_CELL_DIR)) {
#Only if file ends in _1.fastqc.zip (only 1 instance per "trimmed" subdirectory.)
if($file =~ /.*\_1\_fastqc\.zip/){
#Extract the file summary.txt and assign it to filehandle SUMMARY_R1.
$file = "${trimmedDirectory}/${file}";
print "Loading ZIP file: $file. \n";
my $zip = Archive::Zip->new($file);
my @txtFileMembers = $zip->membersMatching('.*\.txt');
foreach my $txtFile (@txtFileMembers){
extractMember($txtFile);
open(SUMMARY_R1,"< $txtFile");
}
}
Я получаю ошибку Can't locate object method "membersMatching".
.. и я знаю, что это имеет какое-то отношение к этому методу membersMatching, который не экспортируется, но я не знаю, как вызвать его в скрипте. Te CPAN страница Архив :: Zip не говорит ничего, кроме как использовать его так:
membersMatching ($ регулярных выражений) membersMatching ({регулярное выражение => $ регулярное выражение}) Возвращение массива из членов, чьи имена совпадают заданное регулярное выражение в контексте списка. Возвращает количество совпадающих элементов в скалярном контексте.
my @textFileMembers = $zip->membersMatching('.*\.txt'); # or my $numberOfTextFiles = $zip->membersMatching('.*\.txt');
Файл загрузки ZIP с функцией Archive::Zip->new($file)
работает, поэтому модуль экспортируется, просто не метод memebersMatching
...
Какова остальная часть вашего сообщения? Он также должен сказать «через пакет» Xxx «' – Borodin