Perl:变量需要显式包名错误

  • 本文关键字:包名 错误 变量 Perl 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);
    }
}

错误:

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.

永远不要相信语法错误之后出现的错误。

在第 44 行,-ne是一个错误,它应该是ne的(你可能在考虑 shell 而不是 perl)。

修复它,其他错误就会消失,或者至少你会留下另一个你可以信任并做点什么的错误。

最新更新