コードのこの部分には、ハッシュに浸された配列のより大きな値をキャッチするためのものがあります。Perlが最大値を識別した場合、配列は@slice配列によって削除されます。
if ( max(map $_->[1], @$val)){
my @slice = (@$val[1]);
my @ignored = @slice;
delete(@$val[1]);
print "$key\t @ignored\n";
warn Dumper \@slice;
}
データ:ダンパーアウト:
$VAR1 = [
[
'3420',
'3446',
'13',
'39',
55
]
];
これらの情報をタブ(\ t)で区切って次のリストのように1行に印刷したいと思います。
miRNA127 dvex589433 - 131 154
miRNA154 dvex546562 + 232 259
miRNA154 dvex573491 + 297 324
miRNA154 dvex648254 + 147 172
miRNA154 dvex648254 + 287 272
miRNA32 dvex320240 - 61 83
miRNA32 dvex623745 - 141 163
miRNA79 dvex219016 + ARRAY(0x100840378)
しかし、最後の行では常にこの結果を取得します。
この出力を生成するにはどうすればよいですか?:
miRNA127 dvex589433 - 131 154
miRNA154 dvex546562 + 232 259
miRNA154 dvex573491 + 297 324
miRNA154 dvex648254 + 147 172
miRNA154 dvex648254 + 287 272
miRNA32 dvex320240 - 61 83
miRNA32 dvex623745 - 141 163
miRNA79 dvex219016 + 3420 3446
追加の説明:この場合、$ VAR-> [1]で最大値を取得し、$ VAR-> [0]で最小値の減算が<=から55であるかどうかを確認します。そうでない場合は、次のことを行う必要があります。このAoA(最大値)を削除し、@ignored配列に入力します。次に、リストのように、@ignoredの値をいくつか出力します。次に、結果のAoAを使用して、最後のフローを繰り返します...