【发布时间】:2020-07-05 16:41:23
【问题描述】:
我想使用 start、end 和 step 对字符串进行切片。假设起始坐标为 1,结束坐标为 22,步长为 3。切片字符串应仅选择坐标 1、4、7、10、13、16、19、22 中的元素。我写了一个函数 get_subseq这样做。在 Perl 中有更短的方法吗?
sub get_subseq {
my ( $seq, $start, $end, $step ) = @_;
my $index = $start;
while ( $index <= $end ) {
print substr $seq, $index, 1;
$index += $step;
}
}
my $sequence = 'AGGGTAGAGTGAGAAGCACCAGCAGGCAGTAACAGC';
# The result should be GTAGACCC
get_subseq( $sequence, 1, 22, 3 );
【问题讨论】: