小编Cas*_*sie的帖子

$ _的范围:为什么会改变它?

我有一个如下代码片段:

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)

为什么$ _的范围在这里变化?

perl scope

1
推荐指数
1
解决办法
61
查看次数

标签 统计

perl ×1

scope ×1