我有一个如下代码片段:
use strict;
use warnings;
# file names to search for
open(my $files, "<", "fileList.txt") or die "Can't open fileList.txt: $!";
my $flag = 0;
while (<$files>) {
print "File loop: $_\n";
open(my $search, "<", "searchMe.txt") or die "Can't open searchMe.txt: $!";
$flag = 0;
while (<$search>){
print "Search loop: $_\n";
}
}
Run Code Online (Sandbox Code Playgroud)
fileList.txt包含一行:"CheckFilesFunctions.pm"
searchMe.txt包含一行:abc
这里的输出是
File loop: CheckFilesFunctions.pm
Search loop: abc
Run Code Online (Sandbox Code Playgroud)
然而.当我将搜索循环更改为以下内容时
while (<$search> && !$flag){
Run Code Online (Sandbox Code Playgroud)
突然,搜索循环开始打印
Search loop: CheckFilesFunctions.pm
Run Code Online (Sandbox Code Playgroud)
为什么$ _的范围在这里变化?