Perlの正規表現はsedの表現を取り入れたもの
Perlの置換の正規表現って何かに似ていると思いませんか? そうですLinux/Unixのsedというコマンドによく似ていますね。
# Perlの置換の正規表現 s/foo/bar/ # sedによる置換 sed 's/foo/bar/'
sedですべて置換する場合のオプションもPerlと同じです。
# Perlですべて置換する正規表現 s/foo/bar/g # sedですべてを置換 sed 's/foo/bar/g'
Perlはsedの表現を参考にしている
Perlというプログラミング言語のひとつの利点は、Linux/Unixで学んだものが、表現が概念をそのままPerlで、使えるということです。
Perlの置換の正規表現の場合も、Linux/Unixで慣れ親しんだsedコマンドの使い方を知っていれば、それをそのままPerlプログラミングで使うことができます。
Linux/Unix環境で、シェルスクリプト、sed、awk、C言語を学んだユーザーにとっては、Perlの学習コストは、とても低いものになっています。
大学1年生のソフトウェアの授業で、C言語とUnix/Linuxサーバーについて、学ぶことと思います。C言語の文法を学習して、grep、sed、awkなどのLinuxコマンドを少し学びます。
C言語とUnix/Linuxサーバーについての知識があれば、Perlでは、使い方や概念を、そのまま活用することができるので、学習コストが低いのです。
Perlは学習コストが高いと誤解していませんでしたか。
ソフトウェアエンジニアにとっては、C言語とUnix/Linuxサーバーの知識の学習は必須項目ですね。
その知識がしっかりしていれば、Perlの使い方を覚えるのに、1か月もかかりません。他の分野で覚えた概念がPerlでそのまま活用できるからです。
sedの使い方がほぼそのまま使えるというのも、「ユーザーが見慣れた表現は使いやすい」というPerlの哲学に基づいています。
Perlは「つぎはぎだらけ」と批判する人たちは、Perlを否定的に語ります。
またPerlユーザー自身も、当たり前すぎて、Perlの使いやすさの秘密を、はっきりと理解していません。
でも実際は、Perlの側から事実に基づいた評価を行うと、Perlは、Unix/Linuxとの親和性に非常に配慮した設計になっているといえるのです。