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

How to Make _ _ LINE _ _ and _ _ FILE_ _ run in perl?

(剧本)

#!/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_ _ literal 类似于 Ctrl–d[=16=]4.[a]

(输出)

1 We are on line number 3.
2 The name of this file is literals.perl.

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

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

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

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

(输出)

The script is called ./testing.plx and we are on line number 2

我需要帮助才能使这个示例正常工作。我在 运行 上遇到了一些麻烦。当我 运行 它在 console2 上时,我会收到一条错误消息

"cant locate object method "_" via package "LINE" (perhaps you forgot to load "LINE"?) at C:\users\john\desktop\console2\test.pl line 5.

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

文字 __FILE____LINE__(或 __END__)中没有 space。连续2个下划线,单词,还有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__ 指令。)