sub get_exon { my $end=pop; my $begin=pop; # alias $_[0] to $chromosome to avoid copy semantics speed penalty for my $chromosome (@_) { return substr($chromosome, $begin - 1, $end - $begin + 1); } } # or perhaps sub get_exon { my ($begin,$end)=@_[1,2]; # alias $_[0] to $chromosome to avoid copy semantics speed penalty for my $chromosome (@_) { return substr($chromosome, $begin - 1, $end - $begin + 1); } }