我有一列标量(分配给变量$ contig)所有看起来都像这样:
c46360_g1_i1_resultsMinus3HEditlen=341
我想取第一部分(c46360_g1_i1)并将其分配给一个新变量并打印出来。基本上切断该列中所有标量的“_resultsMinus3HEditlen = 341”。 c,g和i之后的数字都不同。
这是我到目前为止的代码:
while ( my $line = <RESULTS> ) {
chomp $line;
my @column = split( /[\s|]/, $line );
my $goID = $column[4];
my $contig = $column[0];
$goHash{$contig} = $goID;
print $contig, "\t", $goID, "\n";
}
答案 0 :(得分:0)
这是一个做您期望的示例代码:
perl -E '
my $var = "c46360_g1_i1_resultsMinus3HEditlen=341";
(my $newvar = $var) =~ s/_resultsMinus3HEditlen=\d+//;
say $newvar
'
答案 1 :(得分:0)
my ($contig_prefix) = $contig =~ /^(c[0-9]+_g[0-9]+_i[0-9]+)/;