根据位置替换字符串中的字符

时间:2018-10-07 13:45:07

标签: string perl substr

我正在尝试使用Perl根据其位置替换字符串中的字符。

这就是我所做的:

my ($pos, $rep) = @ARGV;

print ("Give me the string: ");
chomp(my $string = <STDIN>);

print ("The modified string is ", substr($seq, $pos, 1, $rep),"\n");

当我在终端中运行时:

perl myprogram.pl 4 B
Give me the string: eeeeee
The modified string is e

我想要的输出是: eeeeBe

有什么线索吗?

1 个答案:

答案 0 :(得分:4)

引用perldoc -f substr

  

使用substr作为左值的另一种方法是将替换字符串指定为第4个参数。这样一来,就像使用splice一样,您可以替换EXPR的一部分并返回以前的内容

(强调我的。)

换句话说,substr始终返回原始字符串的子字符串。如果要打印修改后的字符串,请分两个步骤进行操作:

substr $seq, $pos, 1, $rep;
# or alternatively:
#  substr($seq, $pos, 1) = $rep;
print "The modified string is $seq\n";