0
У меня есть эта функция: Ее предполагается просто напечатать через пользовательский связанный список:perl: переменная требует явной ошибки имени пакета?
sub myprint {
my $iter = shift->{top};
my $refType = ref($iter);
while ($refType -ne "SCALAR") { #44
print $iter->{data};
$iter=$iter->{prev};
$refType = ref($iter);
}
}
ошибки:
[email protected]:/media/20B9-BF25/perl/OOP$ perl test_linked_list.pl
syntax error at cs351/linked_list/MyLinkedList.pm line 44, near "-ne"
Global symbol "$iter" requires explicit package name at cs351/linked_list/MyLinkedList.pm line 46.
Global symbol "$iter" requires explicit package name at cs351/linked_list/MyLinkedList.pm line 46.
Global symbol "$refType" requires explicit package name at cs351/linked_list/MyLinkedList.pm line 47.
Global symbol "$iter" requires explicit package name at cs351/linked_list/MyLinkedList.pm line 47.
syntax error at cs351/linked_list/MyLinkedList.pm line 48, near "}"
Compilation failed in require at test_linked_list.pl line 3.
BEGIN failed--compilation aborted at test_linked_list.pl line 3.
Я просто попробовал запустить тестовую программу с этой функцией, прокомментированной. Он работал без ошибок. –
'-ne' не делает то, что вы думаете. Perl не имеет '-' в качестве префикса для сравнения строк. – Sobrique