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

问题描述

想知道是否可以编写一个简短的脚本,最终将代码本身打印出来并计算行数。甚至一些简单的东西,比如几行

#!/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";

变量 $0$PROGRAM_NAME 保存程序的名称。

或(每行行数)

use warnings;
use strict;

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

open (my $f,$0);
while (<$f>){printf "%03d %s",$.,$_};
print "read $. lines\n";

变量 $.$INPUT_LINE_NUMBER 包含最后访问的文件句柄的当前行号。

perlvar

另请参阅 mobs answer 以了解使用 DATA 读取文件的方法

,

正在执行的脚本的名称在变量 $0 中,因此完成此操作的直接方法是

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

$0 由于更改目录或覆盖它而不可用时,另一种选择是使用特殊的 DATA 句柄,该句柄在包含特殊 __END__ 或 { {1}} 个令牌。

__DATA__

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...