如何在perl中用hash将如下序列名称和序列内容一一赋值

2025-04-01 18:33:34
推荐回答(1个)
回答1:

嗯, 你总算学会问问题了! 试试这麼写吧...

use strict;
my %h;
my $filename = "seq.txt";

open my $seqFile, $filename or die "$! Can't open $filename";
my @temp = <$seqFile>;
close $seqFile;

chomp @temp;
s/^>// foreach @temp;
%h = @temp;

# 现在你可以
print $h{act_333}; # 打印出: AAAAAACAATTAACTGTGGACGGA 
print $h{bac_165}; # 打印出: AAAAAACAACCTCTCTACCTGTTC

# 又或者
foreach my $key ( keys %h ) {
 print "$key => $h{$key}$/"
} # 打印出所有 "键-值" 对

 补充一下..

  1. &xxx 在 perl 里是呼叫涵数 (sub) 的语法, 而不是 hash

  2. 存取 hash 的语法是 $h{someKey} (读), 或者 $h{someKey} = 1 (写)