您可以非常简单地使用map
正则表达式来挑选数字子字符串my @vector = map [ /\d+/g ], <FILEHANDLE>
本程序从DATA
文件句柄中读取,方便演示。您通常会使用自己打开一个文件open my $fh, '<', 'myfile' or die $!
并从该文件句柄中读取。
Data::Dump
是否仅用于显示数据结构,否则是不必要的。
use strict;
use warnings;
use 5.010;
my @vector = map [ /\d+/g ], <DATA>;
use Data::Dump;
dd \@vector;
say "\$vector[0][0] = $vector[0][0]";
say "\$vector[0][1] = $vector[0][1]";
say "\$vector[1][0] = $vector[1][0]";
say "\$vector[1][1] = $vector[1][1]";
__DATA__
1 2 4 5 7 8
3 1 3 7 8 9 10 11
2 4 1 3 5
4 5 6 7
输出
[
[1, 2, 4, 5, 7, 8],
[3, 1, 3, 7 .. 11],
[2, 4, 1, 3, 5],
[4 .. 7],
]
$vector[0][0] = 1
$vector[0][1] = 2
$vector[1][0] = 3
$vector[1][1] = 1