我正在尝试使用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
有什么线索吗?
答案 0 :(得分:4)
使用
substr
作为左值的另一种方法是将替换字符串指定为第4个参数。这样一来,就像使用splice
一样,您可以替换EXPR的一部分并返回以前的内容。
(强调我的。)
换句话说,substr
始终返回原始字符串的子字符串。如果要打印修改后的字符串,请分两个步骤进行操作:
substr $seq, $pos, 1, $rep;
# or alternatively:
# substr($seq, $pos, 1) = $rep;
print "The modified string is $seq\n";