Arrays 如何在perl中找到某个短语的行号?
我使用while循环将输入文件中的实数指定给数组。输入文件的设置方式使数组中的前21个点为空。数字21对应于输入文件中包含短语“Range1”的行号减去1。我正在使用Arrays 如何在perl中找到某个短语的行号?,arrays,perl,while-loop,line-numbers,Arrays,Perl,While Loop,Line Numbers,我使用while循环将输入文件中的实数指定给数组。输入文件的设置方式使数组中的前21个点为空。数字21对应于输入文件中包含短语“Range1”的行号减去1。我正在使用 splice @range_min, 0, $header_lines-1; 从数组中删除这些空行 我希望$header_行等于包含该短语的行号,因为我可能会有其他输入文件在不同的行中包含该短语 我已尝试将以下命令放入while循环: $header_lines = $., last if /Range1/; 这确实有效,但它
splice @range_min, 0, $header_lines-1;
从数组中删除这些空行
我希望$header_行等于包含该短语的行号,因为我可能会有其他输入文件在不同的行中包含该短语
我已尝试将以下命令放入while循环:
$header_lines = $., last if /Range1/;
这确实有效,但它完全清除了我的数组(破坏了我程序的目的)
有没有更好的方法可以在不影响while循环或数组的情况下在输入文件中查找短语的行号?请尝试将其放入循环:
if ( /Range1/ ) {
$header_lines = $.;
}
我认为当前的情况是,每次通过循环时,您都将$header\u行设置为当前行号($)。当$与Range1匹配时,代码“last if/Range1/;”退出循环。因此,您只需设置前21行,然后退出,然后删除所有行。效果非常好!非常感谢。我认为你的解释也完全正确。