異なる行のファイルがあり、各行にはパターンが繰り返されています。たとえば、ファイルを解析するには適切なデータ構造が必要です。
cluster1:gene1(genome1) gene2(genome2) gene3(genome3)
cluster2:gene4(genome4) gene5(genome5)
名前は任意です。
ハッシュデータ構造のハッシュについて考えてみました
%hoh=("cluster1" => {
"gene1"=>"genome1"
"gene2"=>"genome2"
"gene2"=>"genome2"
}, "cluster2" => {
"gene4"=>"genome4"
"gene5"=>"genome5"
}
)
2 つの質問があります。まず、各行で繰り返されるパターンを探すにはどうすればよいですか?
第二に、ハッシュのハッシュを作成するにはどうすればよいですか?
編集:Zaidのリクエストに応じて投稿
#!/usr/bin/perl -w
use strict; use warnings;
my %HoH;
while(<DATA>){
my $line=$_;
chomp($line);
my ( $cluster, $genes ) = split (/:/,$line);
$HoH{ $cluster } = { split/[( )]+/ , $genes };
}
foreach $cluster (keys %HoH){
print "$cluster: ";
foreach $genes (keys %{$HoH{$cluster}}){
print "$genes = $HoH{$cluster}{$genes} ";
}
print "\n";
}
__DATA__
cluster1:gene1(genome1) gene2(genome2) gene3(genome3)
cluster2:gene4(genome4) gene5(genome5)