gpt4 book ai didi

perl - 如何跳到 Perl 中的特定输入行?

转载 作者:行者123 更新时间:2023-12-04 16:50:15 24 4
gpt4 key购买 nike

我想跳到包含“include”的第一行。

<> until /include/;

为什么这不起作用?

最佳答案

匹配运算符默认使用 $_<>运算符不存储到 $_默认情况下,除非它在 ​​while 循环中使用,所以没有任何内容存储在 $_ 中。 .

来自 perldoc perlop :

输入/输出操作符
...

通常你必须将返回值赋给一个变量,但是有
是发生自动分配的一种情况。当且仅当
输入符号是“while”条件中唯一的东西
语句(即使伪装成“for(;;)”循环),该值是自动的
自动分配给全局变量 $_,破坏任何
以前有。 (这对你来说可能看起来很奇怪,但你会
几乎在您编写的每个 Perl 脚本中都使用该构造。) $_ 变量
能够没有隐式本地化。你必须输入一个“本地 $_;”
如果您希望发生这种情况,请在循环之前。

以下几行是等效的:

而(定义($_ = )){打印; }
而 ($_ = ) { 打印; }
while () { 打印; }
for (;;) { 打印; }
定义时打印($_ = );
打印 while ($_ = );
打印时;

这也有类似的行为,但避免了 $_ :

while (my $line = ) { 打印 $line }

关于perl - 如何跳到 Perl 中的特定输入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/360219/

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