我有一个问题希望有人能帮忙。
我有一个制表符分隔的文本文件,名为FILE.txt
:
(注意缺少两个年龄):
BOY Fred Smith 56
BOY David Jones 18
GIRL Anne Roberts
BOY Fred Andrews
GIRL Hannah Williams 27
我想将文本文件读入哈希/哈希引用数据结构(如下所示):
open my $f, '<', 'FILE.txt';
my $details;
while (<$f>) {
chomp;
my ( $gender, $firstName, $middleName, $lastName, $age) = split("\t");
$details->{$gender}->{$firstName}->{$lastName} = "$age";
}
- 这是制作结构的正确方法吗,因为有时文本文件中可能没有年龄?
有了这个散列/散列参考结构,我想打印人们的详细信息,但因为有些人没有年龄。这会导致散列中的空值和未初始化值等问题。
这是它产生的数据:
{
BOY => { David => { Jones => 18 }, Fred => { Andrews => "", Smith => 56 } },
GIRL => { Anne => { Roberts => "" }, Hannah => { Williams => 27 } },
}
- 您如何适应此人没有指定年龄的情况
FILE.txt
? - 如果这个数据结构的深度是可变的,你如何正确地制作它,然后正确地访问它?
如果哈希/哈希引用的深度是固定/已知的,我知道如何制作和访问它的不同部分,但是当数据结构可能有不同的深度时,最好的方法是什么?
非常感谢您的帮助,谢谢