how to assign lines of variable length to a variable in perl?
我有一个要读取的文件,其中每个位置的 id 数量可变,如下所示:
1 2 3 | loc1 id1 id4 id5 id9 loc2 id2 loc3 id1 id11 id23 |
我想将其存储如下 locs(loc) = {所有属于该位置的 id}
这样以后,当我读取另一个文件时,我可以执行类似
的操作
1 |
我尝试使用哈希来执行此操作,但这不起作用。我试过了:
1 2 3 4 5 6 7 |
但这不起作用。
我是 perl 新手,但仍在尝试了解不同的数据类型。
有什么想法吗?非常感谢!
这应该做你想做的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ perl test.pl $VAR1 = { 'loc2' => [ 'id2' ], 'loc1' => [ 'id1', 'id4', 'id5', 'id9' ], 'loc3' => [ 'id1', 'id11', 'id23' ] }; |
还有一个可能的选择是散列的散列。当你想查找一个 id 时,你可以说
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $VAR1 = { 'loc2' => { 'id2' => 1 }, 'loc1' => { 'id1' => 1, 'id5' => 1, 'id4' => 1, 'id9' => 1 }, 'loc3' => { 'id1' => 1, 'id11' => 1, 'id23' => 1 } }; |