我想知道是否有一种简单/干净的方法来交换值,如下所示,也许使用单个正则表达式/替换?

如果$ a以“ x”结尾,则将其替换为“ y”。同样,如果$ a以“ y”结尾,则将其替换为“ x”:

$a = "test_x";

if ($a =~ /x$/) {
  $a =~ s/x$/y/;
} else {
  $a =~ s/y$/x/;
}


我只能想到这样的事情:

$a = $a =~ /x$/ ? s/x$/y/ : s/y$/x/;

最佳答案

这很简单:

$a =~ s/x$/y/ or $a =~ s/y$/x/;


进行比赛以查看是否应该进行替代几乎总是多余的。

其他方式:

substr($a,-1) =~ y/xy/yx/;

07-26 00:37