我想跳到包含"include"的第一行.
<> until /include/;
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?
Rob*_*ble 10
匹配运算符默认使用,$_但默认情况下<>运算符不会存储$_,除非它在while循环中使用,因此不会存储任何内容$_.
来自perldoc perlop:
I/O Operators
...
Ordinarily you must assign the returned value to a variable, but there
is one situation where an automatic assignment happens. If and only if
the input symbol is the only thing inside the conditional of a "while"
statement (even if disguised as a "for(;;)" loop), the value is auto?
matically assigned to the global variable $_, destroying whatever was
there previously. (This may seem like an odd thing to you, but you’ll
use the construct in almost every Perl script you write.) The $_ vari?
able is not implicitly localized. You’ll have to put a "local $_;"
before the loop if you want that to happen.
The following lines are equivalent:
while (defined($_ = )) { print; }
while ($_ = ) { print; }
while () { print; }
for (;;) { print; }
print while defined($_ = );
print while ($_ = );
print while ;
This also behaves similarly, but avoids $_ :
while (my $line = ) { print $line }