我有这个功能:它应该只通过自定义链表打印:
sub myprint {
my $iter = shift->{top};
my $refType = ref($iter);
while ($refType -ne "SCALAR") { #44
print $iter->{data};
$iter=$iter->{prev};
$refType = ref($iter);
}
}
错误:
jddancks@GIGABYTE-SERVER:/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.
答案 0 :(得分:4)
永远不要相信语法错误后出现的错误。
在第44行,-ne
是一个错误,它应该是ne
(你可能在考虑shell而不是perl)。
修复此问题,其他错误将消失,或者至少会留下您可以信任并执行某些操作的其他错误。