簡體   English   中英

有沒有一種方法可以將文件中的列分配給多個數組?

[英]Is there a way to assign columns from a file to multiple arrays?

我有一個名為data.txt的文件,看起來像這樣:

12487 72 3.179
12487 84 2.47
12976 82 3.22
12443 81 4.29

我需要做的是將每個列從文件中讀取時放在其自己的數組中,這樣就可以了:

@a = 12487 12487 12976 12443
@b = 72 84 82 81
@c = 3.179 2.47 3.22 4.29

因此,每一行都將執行類似$ 1進入@a $ 2進入@b $ 3進入@c的操作-但我不確定如何確切地執行此操作。

我首先嘗試從每一行中獲取每個數組索引,但是這太多了,無法進行排序(文件很大)。 我對perl還是很陌生,所以我很困惑,不確定我應該在perldoc中尋找什么(這是我用作入門參考)。

使用push將元素附加到數組。

#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

my (@a, @b, @c);
while (<>) {
    my @columns = split;
    push @a, $columns[0];
    push @b, $columns[1];
    push @c, $columns[2];
}

say "@$_" for \@a, \@b, \@c;

除了三下推,您還可以使用

    push @{ (\@a, \@b, \@c)[$_] }, $columns[$_] for 0 .. 2;

但我覺得它不可讀。 它遍歷要同時添加到的列和數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM