我怎么能用Perl打印@slice数组元素呢



我有这部分代码来捕获沉浸在哈希中的数组的较大值。当Perl识别出最大值时,数组将被@slice array:删除

if ( max(map $_->[1], @$val)){
my @slice = (@$val[1]);             
my @ignored = @slice;
delete(@$val[1]);
print "$keyt @ignoredn";
warn Dumper @slice; 

}

数据:倾卸装置:

$VAR1 = [ [ '3420', '3446', '13', '39', 55 ] ];

我想把那些用制表符(\t)分隔的信息打印成一行,如下所示:

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(最高值),并用它填充一个@gnored数组。接下来,我想打印一些@gnored的值,比如列表。接下来,使用结果AoA,我想迭代最后一个流。。。

print "$keyt $ignored[0]->[0]t$ignored[0]->[1]";

您有一个数组数组,因此@ignored的每个元素都是一个数组。符号$ignored[0]到达第零个元素(它是一个数组),->[0]->[1]检索该数组的第零个和第一个元素。

例如:

use strict;
use warnings;
use Data::Dumper;
my @ignored;
$ignored[0] = [ '3420', '3446', '13', '39', 55 ];
my $key = 'miRNA79 dvex219016 +';
print Dumper @ignored;
print "n";
print "$keyt$ignored[0]->[0]t$ignored[0]->[1]";

输出:

$VAR1 = [
          [
            '3420',
            '3446',
            '13',
            '39',
            55
          ]
        ];
miRNA79 dvex219016 +    3420    3446

生成相同输出的另一个选项是使用t:将所有值join

print join "t", $key, @{ $ignored[0] }[ 0, 1 ];

最新更新