Perl 显示代码本身的短脚本?

Perl 显示代码本身的短脚本?,perl,Perl,想知道是否有可能编写一个简短的脚本,在最后打印出代码本身并计算行数。即使是一些简单的事情,比如几行 #!/usr/bin/perl use strict; print "Hello there"; print "This got me scratching my head"; 输出就是这个代码本身,并计算行数。 事先非常感谢。像这样的吗 use warnings; use strict; print "Hello there";

想知道是否有可能编写一个简短的脚本,在最后打印出代码本身并计算行数。即使是一些简单的事情,比如几行

#!/usr/bin/perl

use strict;

print "Hello there";
print "This got me scratching my head";
输出就是这个代码本身,并计算行数。 事先非常感谢。

像这样的吗

use warnings;
use strict;

print "Hello there";
print "This got me scratching my head";

open (my $f, '<', $0);
while (<$f>){print};
print "read $. lines\n";
变量
$。
$INPUT\u LINE\u NUMBER
包含上次访问的文件句柄的当前行号

另请参阅,以获取使用类似以下内容的
数据读取文件的方法

use warnings;
use strict;

print "Hello there";
print "This got me scratching my head";

open (my $f, '<', $0);
while (<$f>){print};
print "read $. lines\n";
变量
$。
$INPUT\u LINE\u NUMBER
包含上次访问的文件句柄的当前行号


另请参阅,了解使用
数据读取文件的方法
正在执行的脚本的名称在变量
$0
中,因此实现此操作的简单方法是

...
open(my $ZERO,"<",$0);
my @lines = <$ZERO>;
close $ZERO;
print @lines, "count = ", 0+@lines, "\n";
...

正在执行的脚本的名称在变量
$0
中,因此实现这一点的简单方法是

...
open(my $ZERO,"<",$0);
my @lines = <$ZERO>;
close $ZERO;
print @lines, "count = ", 0+@lines, "\n";
...

你是在问quine,还是先打印文件内容,然后再打印行数?嘿,我不确定quine是什么,idk如果我解释正确的话,基本上代码本身就是理想的输出,就像它只打印自己的代码行数,我想应该是quine。在典型的quine代码挑战中,禁止使用语言的输入功能,例如,将源代码加载到变量中,然后输出该变量。这个限制在这里似乎不适用。你是在问quine,还是在打印文件内容后再加上行数?嘿,我不确定quine是什么,idk如果我解释正确,基本上代码本身就是理想的输出,就像它只打印自己的代码行数一样。读过之后,是的,我想应该是quine。在典型的quine代码挑战中,禁止使用语言的输入功能,比如说,将源代码加载到变量中,然后输出该变量。这一限制似乎不适用于这里。