我有一個文件,我想讀的是具有可變號碼ID的每個位置的,看起來像這樣:如何將可變長度的行分配給perl中的變量?
loc1 id1 id4 id5 id9
loc2 id2
loc3 id1 id11 id23
我想存儲該如下LOCS(LOC)= {屬於所有IDS該位置} 以至於後來,當我讀到另一個文件我可以這樣做
if (grep id, locs(loc)){do something}
我試圖做到這一點使用的哈希,但是這是行不通的。我嘗試過:
open my $loclist, '<', $ARGV[0];
my %locs;
while (<$loclist>) {
my @loclist_rec = split;
my $loclist_loc = @rlist_rec[0];
$locs{$loclist_loc} = @loclist_rec;
}
但這是行不通的。 我是perl的新手,仍然試圖理解不同的數據類型。
任何想法?非常感謝!
您需要了解數組和數組引用之間的區別。你需要做的就是'$ locs {$ loclist_loc} = \ @loclist_rec;'將一個_reference_賦值給哈希值。 –
每個人都使用[引用](http://perldoc.perl.org/perlref.html)給你一個答案。你需要的是[Perl參考教程](http://perldoc.perl.org/perlref.html)。當你有陣列數組或哈希陣列哈希時,引用是很棒的。或者任何形式的複雜結構都不能很好地融入到Perl原來的三種變量類型中。閱讀教程,一切都將變得清晰。 –
非常感謝,也爲本教程!那就是我所需要的:) – madieke