gpt4 book ai didi

相当于 php -E 的 perl 命令行

转载 作者:行者123 更新时间:2023-12-02 05:23:27 26 4
gpt4 key购买 nike

php -R '$count++' -E 'print "$count\n";' < somefile

将打印“somefile”中的行数(我实际上不会这样做)。

我想在 perl 命令中模拟 -E 开关。

perl -ne '$count++' -???? 'print "$count\n"' somefile

这可能吗?

最佳答案

TIMTOWTDI

您可以使用 Eskimo Kiss运算符(operator):

perl -nwE '}{ say $.' somefile 

这个运算符并没有人们想象的那么神奇,正如我们解析单行代码所看到的那样:

$ perl -MO=Deparse -nwE '}{say $.' somefile 
BEGIN { $^W = 1; }
BEGIN {
$^H{'feature_unicode'} = q(1);
$^H{'feature_say'} = q(1);
$^H{'feature_state'} = q(1);
$^H{'feature_switch'} = q(1);
}
LINE: while (defined($_ = <ARGV>)) {
();
}
{
say $.;
}
-e syntax OK

它只是附加了一组额外的大括号,使以下代码在隐式 while 循环之外结束。

或者您可以检查文件结尾。

perl -nwE 'eof and say $.' somefile

对于多个文件,您会得到每个文件的累积总和。

perl -nwE 'eof and say $.' somefile somefile somefile
10
20
30

您可以关闭文件句柄以获得非累积计数:

perl -nwE 'if (eof) { say $.; close ARGV }' somefile somefile somefile
10
10
10

关于相当于 php -E 的 perl 命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9097355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com