【发布时间】:2013-10-24 19:35:39
【问题描述】:
我正在解析一个文件,每奇数行给我一个“字母”(A、B、C 等),每偶数行给我一个“二进制序列”(0101、1111、0001 等)。
我想创建一个数组散列(但如果您认为另一种数据类型更合适,请告诉我)以保持所有行井井有条。
我知道数组的有可能看起来像:
%HoA = (
A => [ "0001", "1010" ],
B => [ "0011", "1111", "0111" ],
C => [ "0000"],
);
而且我知道如何访问这种数据类型的信息。
但是,我在创建这种数据类型时遇到了麻烦。
例如,我能够正确获取文件的“字母”($letter)和“二进制序列”($seq),使用类似:
while (<INPUT>) {
s/[\n\r]//mg;
if ( /^>/) {
$letter = substr($_, 7, 1);
}
if ( /^[01]/) {
$seq = $_;
}
}
但我不确定如何:
- 创建数组的哈希,
- 首先检查该“字母”是否已作为键存在于哈希中
- 如果“字母”不作为密钥存在,那么如何将其创建为新密钥
- 在确定“字母”已经存在或创建它(如果不存在)之后,如何将“seq”作为值添加到“字母”。
如果不能在 Perl 中创建这样的数据类型,那么我将不胜感激有关转向哪种数据类型的任何建议!我需要将每个“字母”附加到它的所有“序列”上。
任何帮助将不胜感激!
【问题讨论】: