を使用してコードを記述しようとしていた場合perl hash
。未定義の値や改行はありません__DATA__
(ファイルから同じ入力を試みました)。しかし、データダンパーまたは従来の方法を使用して印刷しているときに''
、キーとundef
その値として取得しています。なぜこうなった ?明らかな何かが欠けていますか?
プログラム:
use strict;
use Data::Dumper;
my %i_hash = undef;
my %p_hash = undef;
while (<DATA>) {
chomp;
my @line = split(/\h+/);
$i_hash{ $line[0] } = $line[1]; # Interactions Hash
$p_hash{ $line[0] } = $line[2]; # PMIDs Hash
}
print Dumper( \%i_hash, \%p_hash );
__DATA__
AAA BBB PMID_1
BBB AAA PMID_2
CCC AAA PMID_3
DDD CCC PMID_4
EEE FFF PMID_1
FFF GGG PMID_6
出力:
$VAR1 = {
'' => undef,
'FFF' => 'GGG',
'CCC' => 'AAA',
'BBB' => 'AAA',
'EEE' => 'FFF',
'DDD' => 'CCC',
'AAA' => 'BBB'
};
$VAR2 = {
'' => undef,
'FFF' => 'PMID_6',
'CCC' => 'PMID_3',
'BBB' => 'PMID_2',
'EEE' => 'PMID_1',
'DDD' => 'PMID_4',
'AAA' => 'PMID_1'
};