Здесь мы ищем строку «reftext» в данном файле. Строка рядом с ней содержит строку с 3 целыми числами. Поэтому мы извлекаем их в @all_num
. Мы печатаем значение @all_num[2]
только в том случае, если оно не является NULL. Но логика здесь используется не печатает @all_num[2]
, даже если он имеет 0.Как отличить «0» от NULL в perl?
#!/usr/bin/perl
open(READFILE, "<myfile.txt");
@list = <READFILE>;
$total_lines = scalar @list;
for ($count = 0; $count < $total_lines; $count++) {
if (@list[ $count =~ /reftext/)
{
@all_num = @list[ $count + 1 ] =~ /(\d+)/g;
if (@all_num[2] != NULL) {
print "@all_num[2]\n";
}
}
}
Используйте 'use strict' и' используйте предупреждения' в верхней части вашей программы после строки _shebang_. – serenesat
И было бы более полезно, если вы можете предоставить данные _myfile.txt_. – serenesat
В Perl нет NULL. Используйте undef, когда вы имеете в виду «no value». –