置換の連鎖
「置換の連鎖」って、なんかグッとくるものがあるじゃないですか?
って思ったけど、そうでもないですね。
でも、使ってみると便利だったのでメモっておきます。
ここで知りました。
Perl の正規表現のチュートリアル(perldoc.jp)
use v5.14; use strict; use warnings; my $foo = 'abc'; say '$foo = ', $foo; say $foo =~ s/a/x/; say '$foo = ', $foo; say '-' x 10; my $bar = 'abc'; say '$bar = ', $bar; say $bar =~ s/a/x/r; say '$bar = ', $bar;
これを実行すると、こんな感じ。
$ perl aaa.pl
$foo = abc
1
$foo = xbc
----------
$bar = abc
xbc
$bar = abc
v5.14から使える非破壊置換修飾子こと、/r
オプションを付けると、
置換後の文字列が取得できます。
なので、こんなこともできます。
use v5.14; use strict; use warnings; my $foo = 'abc'; say '$foo = ', $foo; say 'result = ', $foo =~ s/a/x/r =~ s/b/x/r =~ s/c/x/r;
$ perl bbb.pl
$foo = abc
result = xxx
気になる実行順序はこんな感じ?
use v5.14; use strict; use warnings; my $foo = 'a'; say '$foo = ', $foo; say 'result = ', $foo =~ s/a/b/r =~ s/b/c/r =~ s/c/x/r;
$ perl ccc.pl
$foo = a
result = x
おしまい。
Leave a Comment