perlを忘れ去っていた

今年の始め頃は結構perlを触っていたし、Perlベストプラクティスも読んでたんですが、全く忘れてました。

今日、数ヶ月振りにperlで使い捨てのツールを作ろうとしたんですが、何から何まで忘れてて、ググってた気がする。

文字列のマッチをする場合、mxs修飾子は常に付けるという教えがあったので、その教えに従って、文字列の置換もx修飾子を使ってわかりやすくしてみました。下は極端な失敗例です。

# 文字列の置換
my $b = q(bar boo foo);
$b =~ s{
        oo
        \b 
      }
{
        oo! 
      }gmxs;
print $b, "\n";
# => bar b
#       oo!
#      f
#       oo!

?と思って調べてみると、x フラグで、見易く書けるのは、マッチ部分だけらしいです。後半の {} の部分は、””(ダブルクォート)で囲まれた文字列として扱われるようです。正解は下のようになるみたいです。

my $b = q(bar boo foo);
$b =~ s{
        oo
        \b 
      }{oo!}gmxs;
print $b, "\n";
# => bar boo! foo!

今年の始めには、一番好きな言語は、perlだったはずなんですがorz.

いつでも、使い捨てツールやらCGIやらすらすら書けるように、意識的に触るようにしたい。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください