如何让_ _ LINE _ _和_ _ FILE_ _在perl中运行?

时间:2015-06-14 03:53:40

标签: windows perl literals console2

(剧本)

#!/usr/bin/perl
# Program, named literals.perl

写入测试特殊文字

1   print "We are on line number ", _ _LINE_ _, ".\n";
2   print "The name of this file is ",_ _FILE_ _,".\n";
3   _ _END_ _

这些东西只是一堆喋喋不休的喋喋不休 被Perl忽略了。 _ _END_ _ literalCtrl–d\004.[a]

类似

(输出)

  

1我们在第3行。
  2此文件的名称为literals.perl。

解释 如果要解释特殊文字_ _LINE_ _,则不能用引号括起来。它保存Perl脚本的当前行号。

此脚本的名称为 literals.perl 。特殊文字_ _FILE_ _包含当前Perl脚本的名称。

特殊文字_ _END_ _表示脚本的逻辑结尾。它告诉Perl忽略跟随它的任何字符。

print "The script is called", _ _FILE_ _, "and we are on line number ",
_ _LINE_ _,"\n";

(输出)

  

该脚本名为./testing.plx,我们在第2行

我需要帮助让这个例子起作用。我在运行它时遇到了一些麻烦。当我在console2上运行它时,我会收到一个错误,说明这个

  

“无法通过包” LINE “找到对象方法”_“(也许你   忘了在C:\ users \ john \ desktop \ console2 \ test.pl中加载“ LINE ”?)   第5行。

关于如何解决这个问题的任何想法都将非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

文字__FILE____LINE__(或__END__)中没有空格。只有2个下划线,单词和另外2个下划线。

答案 1 :(得分:2)

您需要在下划线之间使用不带空格的名称:

#!/usr/bin/env perl
use strict;
use warnings;

print "We are on line number ", __LINE__, ".\n";
print "The name of this file is ", __FILE__, ".\n";
__END__

print "This is not part of the script\n";

保存在fileline.pl并运行时,会产生:

We are on line number 5.
The name of this file is fileline.pl.

请注意,连续下划线之间没有空格。请注意,包含print语句的最后一行不是脚本的一部分,因为它位于__END__之后。 (还有一个__DATA__指令有时可能有用。)