Perl脚本中的奇数子例程编译错误

帕尔扎瓦尔博士

为了比较,分别将两段ASCII文本(一个L =长,一个S =短)读入@arrayOne和@arrayTwo。以下子例程&analyse从smart.pl代码获取两个数组引用,但通过perl -c smart.pl检查时抛出错误。不幸的是,我不知道为什么:

68  sub analyse {
69      my $arraysize ; my $arrLref ; my $arrSref ; my $item_L ; my $item_S ; my $value ;
70
71      $arrSref = shift ; $arrLref = shift ;
72      $item_S = shift @{ $arrSref } ;
73      $item_L = shift @{ $arrLref } ;
74
75      $arraysize = $#{ $arrSref } ;
76      while ( $arraysize > 0 ) {
77          $value = ( $item_S cmp $item_L ) ;
78          given ( $value ) {
79              when ( -1 ) {
80                  push ( @mergedArray , $item_S ) ;
81                  $item_S = shift @{ $arrSref }
82              }
83              when ( 0 ) {
84                  push ( @mergedArray , $item_L ) ;
85                  $item_S = shift @{ $arrSref } ;
86                  $item_L = shift @{ $arrLref }
87              }
88              when ( 1 ) {
89                  push ( @mergedArray , $item_L ) ;
90                  $item_L = shift @{ $arrLref }
91              }
92              default { &die }
93          }
94      }
95  }

使用以下语句中止编译:

    $ perl -c smart.pl 
    syntax error at smart.pl line 78, near ") {"
    syntax error at smart.pl line 83, near ") {"
    syntax error at smart.pl line 88, near ") {"
    Global symbol "$item_L" requires explicit package name at smart.pl line 89.
    Global symbol "$item_L" requires explicit package name at smart.pl line 90.
    Global symbol "$arrLref" requires explicit package name at smart.pl line 90.
    syntax error at smart.pl line 91, near "}"
    smart.pl had compilation errors.

也许其他人有线索?预先感谢–DrP-

约翰·萨克斯顿

根据Perl文档,为了使用givenwhen,需要满足两个条件:

  1. 你需要 use feature "switch";
  2. 您需要Perl 5.10.1+

那应该可以解释您在第78、83和88行看到的内容。

关于在第89行和第90行上看到的警告use strict;,这些警告与的使用有关,可以在此处找到关于这些警告的出色解释

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perl脚本中的奇数子例程编译错误

来自分类Dev

在另一个子例程中运行一个子例程-编译错误:参数不是可选的

来自分类Dev

Perl语法编译错误

来自分类Dev

编译错误:VERSION脚本中的语法错误

来自分类Dev

模块彼此循环使用。Perl中的编译错误

来自分类Dev

Kivy中build.py脚本的编译错误

来自分类Dev

Perl中未定义的子例程和主要错误

来自分类Dev

Perl中未定义的子例程和主要错误

来自分类Dev

Perl子例程中的本地$ _

来自分类Dev

PERL中的子例程原型

来自分类Dev

Perl子例程中的本地$ _

来自分类Dev

编译错误提示库示例程序“ helloworld”

来自分类Dev

仅当使用-d开关运行时,perl脚本才会引发编译错误

来自分类Dev

Scala中的编译错误

来自分类Dev

在方法中编译错误

来自分类Dev

Maven中的编译错误

来自分类Dev

VBA中的编译错误

来自分类Dev

prolog中的编译错误

来自分类Dev

Perl如果elsif返回-编译错误

来自分类Dev

Perl:$ i的子例程抛出错误

来自分类Dev

Perl包在脚本文件中定义,如何具有包导出子例程?

来自分类Dev

检查Perl中是否存在子例程

来自分类Dev

perl中的子例程以执行#ARGV条目

来自分类Dev

如何从v8脚本编译错误中获取行号和列?

来自分类Dev

当某些类型的用户执行脚本时,如何忽略Oracle pl / sql中的编译错误

来自分类Dev

Java程序中的编译错误

来自分类Dev

AnyPoint Studio中的编译错误

来自分类Dev

Ruby on Rails中的Coffeescript编译错误

来自分类Dev

主要方法中的编译错误