2

繰り返しパターンのある文字列があり、そのようなパターンが出現するたびに別の文字列に置き換えたいと思います。置換文字列は、他の文字列のセットを連結することによって形成されます。例を以下に示します。.最初に、図のように演算子を使用して連結を試みました。

ただし、出力にはドット自体が含まれているため、Perlはそれを演算子としてではなくリテラルとして扱い.ます。

#!/usr/bin/perl
use warnings;
use strict;

my $start = 'not-so-';
my $end = '-but-a-little-bad';
my $string = 'I am a good boy. Infact I am a very good boy';
print "Before: $string\n";
>>>> $string =~ s/(good)/$start.$1.$end/g;
print "Later : $string\n";

そこで、sを削除する.と、ステートメントは$string =~ s/(good)/$start$1$end/g;になり、出力は期待どおりになります。しかし、このような発言は後でメンテナンスの問題を引き起こす可能性があると感じています。

私の質問:これ以外に文字列を連結するより良い方法はありますか?

4

1 に答える 1

5

あなたの表記

$string =~ s/(good)/$start$1$end/g;

いいね。必要に応じて、書くこともできます

$string =~ s/(good)/$start . $1 . $end/ge;

しかし、それは完全に同等です。

于 2012-10-25T19:22:20.823 に答える