我正在处理两个文件,所以当我循环浏览一个文件时,我需要查看另一个文件的一部分,我在其中遇到的信息将是顺序的.所以我认为最好的方法是跟踪行号:
open(PARSED, "< file.txt") or die$!;
my @parsedFile = < PARSED >;
my $line = 0;
my $size = @parsedFile;
# This next part is in a loop, but the only important thing is this next line
print $parsedFile[$line];
即使$ line的值增加,它也
只会打印,但如果我执行以下操作则没有问题:
我甚至尝试了多种尝试从@parsedFile中提取单行但没有运气的变体.
foreach (@parsedFile){
print $_;
}
<>是一个令人难以置信的挑剔操作符,只根据括号内的精确语法完成两个截然不同的事情. < PARSED >(使用额外的空格)是glob("PARSED"),而不是readline(PARSED),所以你的数组只是获得单个字符串"PARSED".
(假设您发布的代码是准确的;如果您复制并粘贴实际的非工作代码,而不是重新键入部分代码,它确实有帮助;如果您的复制粘贴代码可以完全按照证明你的问题.)
注意:
use warnings;
open(PARSED, "< filename") or die $!;
my @lines = < PARSED >;
Run Code Online (Sandbox Code Playgroud)
会给你一个警告,说PARSED只使用一次,这<>是一个很大的线索,表明它没有按你的想法行事.