Perl 将txt数据存储在哈希表中
我有一个表(txt),我想读入perl并用相同的键将不同的列存储在单独的散列中。该表的详细内容如下所示: (第一列:ID, 第二栏:家长, 第三栏:性别, 第四栏:影响(U状态) a10米不 A2 0 f号 A3 A1A2 m号 A4 A1A2 f是 A5 A1A2 f是 B1 0米编号 我阅读了stackoverflow()中的旧线程,并得出以下结论:Perl 将txt数据存储在哈希表中,perl,Perl,我有一个表(txt),我想读入perl并用相同的键将不同的列存储在单独的散列中。该表的详细内容如下所示: (第一列:ID, 第二栏:家长, 第三栏:性别, 第四栏:影响(U状态) a10米不 A2 0 f号 A3 A1A2 m号 A4 A1A2 f是 A5 A1A2 f是 B1 0米编号 我阅读了stackoverflow()中的旧线程,并得出以下结论: #!/usr/local/bin/perl use strict; my %pedigree= (); my $file = "pedig
#!/usr/local/bin/perl
use strict;
my %pedigree= ();
my $file = "pedigree.txt";
open (pedigree,'<','pedigree.txt') or die ("Cannot open file");
while (<pedigree>) {
chomp;
my ($ID,$parents,$gender,$affection_status)=split /\t/;
$pedigree{$ID} = [$parents, $gender, $affection_status];
};
#/usr/local/bin/perl
严格使用;
我的%血统=();
my$file=“pedigree.txt”;
打开(谱系,%谱系
应以您希望从中读取的相同方式填充
my @cols = qw(parents gender affection_status);
while (<pedigree>) {
chomp;
my ($ID, @arr) = split /\t/;
$pedigree{ $cols[$_] }{$ID} = $arr[$_] for 0 .. $#cols;
}
my@cols=qw(父母性别关系状况);
而(){
咀嚼;
我的($ID,@arr)=拆分/\t/;
$pedigree{$cols[$#]}{$ID}=$arr[$#]表示0..$#cols;
}
哇,太快了:-)非常感谢@Pustefix您还可以更改输出,$pedigree{$ID}[1]
将表示性别
my @cols = qw(parents gender affection_status);
while (<pedigree>) {
chomp;
my ($ID, @arr) = split /\t/;
$pedigree{ $cols[$_] }{$ID} = $arr[$_] for 0 .. $#cols;
}