arrays - 将文件行存储到数组中

标签 arrays perl file lines

所以我对 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/

相关文章:

java - 如何在不创建文件的情况下打开文件(图像、pdf、utc...)

arrays - 同时遍历两个数组

arrays - MATLAB:定义矩阵的 n 个子集

php - 如何在php中插入多维数组?

java - 无法在 Windows 框中安装 WWW::HtmlUnit

perl - 从 PL/R 中的 R 函数返回多个不同的数据结构

Java获取具有正确编码的url

c++ - 查找文件中 10 个最长的单词

c# - 在单线程中的 List.Add 期间,什么可能导致 "Destination array was not long enough"?

perl - Perl 中的输出流 : STDERR, STDOUT,