誰かが助けてくれることを望んでいる質問があります。
というタブ区切りのテキスト ファイルがありますFILE.txt
。
(年齢のうち 2 つが欠落していることに注意してください):
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
か? - 深さが可変の場合、このデータ構造を適切に作成し、適切にアクセスするにはどうすればよいですか?
固定/既知の深さのハッシュ/ハッシュ参照のさまざまな部分を作成してアクセスする方法は知っていますが、データ構造の深さが異なる可能性がある場合にこれを行う最良の方法は何ですか?
あなたの助けは大歓迎です、ありがとう