我正在解析一个文件,每一个奇数行给我一个“字母”(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 中创建这样的数据类型,那么我将不胜感激任何关于转向哪种数据类型的建议!我需要将每个“字母”附加到它的所有“序列”上。
任何帮助将非常感激!