代码之家  ›  专栏  ›  技术社区  ›  SCdF

在perl-cw中,行号指的是什么?

  •  3
  • SCdF  · 技术社区  · 14 年前

    当我运行“perl-cw”检查Perl模块的语法时,遇到警告或错误,给出了两个行号:

    perl -cw lib/My/Module.pm
    Global symbol "%badvar" requires explicit package name at lib/My/Module.pm line 93, <DATA> line 132.
    lib/My/Module.pm had compilation errors.
    

    “行93”是源文件中的正确位置,但“<data>行132”指的是什么?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Michael Carman    14 年前

    错误消息的结构是:

    消息 文件 线 X ; 手柄 GT线 Y .

    • 消息 是错误的描述。
    • 文件 是发生错误的文件。
    • X 是发生错误的文件中的行号。
    • 手柄 是从中读取的最后一个文件句柄。
    • Y 是最后一行吗 从手柄上读取。

    在您的例子中,在第132次读取数据句柄后,错误发生在lib/my/module.pm的第93行。数据是在 __DATA__ 源文件的标记。请注意,数据句柄的行号是倾斜的。”<data>第132行是 第二代 标签,而不是文件的第132行。

    1]从技术上讲,它是 $. . 这通常是一个行号,但如果您更改了 $/ . 对于数据句柄,它也是倾斜的。

        2
  •  2
  •   Platinum Azure    14 年前

    <DATA> 指的是 DATA filehandle 如果你有 __DATA__ 代码中的部分。

    我可能是错的,但我相信它也是您用空的 <> 操作员。(编辑:我错了,那是 <ARGV> !对不起。)