所以我对 Perl 还很陌生,只学习了 1 周。我试图将特定范围的行读入数组。如果我在 if 语句中打印 $_ ,它会准确列出我想要存储到数组中的内容。但是将 $_ 存储到我的数组中,然后在 while 之外打印 @array 没有显示任何内容。我不知道我应该做什么。我尝试将其存储到数组中的原因是从列中获取某些信息,因此需要一个数组来执行此操作。感谢您的帮助。这对你们来说可能真的很简单
use strict;
use warnings;
my $filename = 'info.text';
open my $info, $filename or die "Could not open $filename: $!";
my $first_line = 2;
my $last_line = 15;
open(FILE, $filename) or die "Could not read from $filename, program halting.";
my $count = 1;
my @lines;
while(<FILE>){
if($count > $last_line){
close FILE;
exit;
}
if($count >= $first_line){
#print $_;
push @lines, $_;
}
$count++;
}
print @lines;
最佳答案
用数字来实现要简单得多:
my @lines = (<FILE>)[1..14];
(注意 - perl
数组从零开始 - 您的“第一”行是上面的 0
)
但是您也可以保留正在做的事情,并测试 $.
:
while ( my $line = <FILE> ) {
chomp;
next unless $. > 2;
push ( @lines, $line );
last if $. > 15;
}
应该做同样的事情。
关于arrays - 将文件行存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35676307/