我需要将$foo= 101100转换为10aabb当前正在使用它,但它将替换整个字符串$foo =~ tr/10/ab/;
$foo= 101100
10aabb
$foo =~ tr/10/ab/;
trnvg8h31#
下面是Perl的一些妙招:
my $foo = 101100; substr($foo, 2) =~ tr/10/ab/; print $foo;
输出量:
基本上,我们从第二个字符偏移量开始,取字符串的子字符串,并将其音译。在documentation for substr中,您可以看到以下内容:可以将substr函数用作左值,在这种情况下,EXPR本身必须是左值....当用作左值时,指定完全位于字符串之外的子字符串会引发异常。下面的示例显示了边界情况下的行为:
my $name = 'fred'; substr($name, 4) = 'dy'; # $name is now 'freddy' my $null = substr $name, 6, 2; # returns "" (no warning) my $oops = substr $name, 7; # returns undef, with warning substr($name, 7) = 'gap'; # raises an exception
1条答案
按热度按时间trnvg8h31#
下面是Perl的一些妙招:
输出量:
基本上,我们从第二个字符偏移量开始,取字符串的子字符串,并将其音译。
在documentation for substr中,您可以看到以下内容:
可以将substr函数用作左值,在这种情况下,EXPR本身必须是左值.
...
当用作左值时,指定完全位于字符串之外的子字符串会引发异常。下面的示例显示了边界情况下的行为: