Perlが優れている分野 - ruby, python, PHPとの比較なども



  1. Perl



  2. here

Perlは便利なプラグラミング言語ですが、どんな特徴があるのでしょうか。Perlというプログラミング言語の特徴について解説してみます。

1. Perlの特徴

Perlはテキスト処理が得意なスクリプト言語です。数値と文字列の自動変換機能、強力な正規表現が言語に組み込まれています。処理速度はRubyなどのスクリプト言語と比べて比較的高速です。

1.1 テキスト処理が簡単、高速に書ける

テキスト編集を行うという目的ならPerlがもっともよい選択肢になるでしょう。マシンの性能によりますが数百万行のテキストファイルでも実用的な時間で処理を行うことができると思います。

またPerlは利用のしやすさ・安定性という点でも他のスクリプト言語よりも優れています。PerlUnix系やLinux系のOSには標準でインストールされています。WindowsPerlをインストールしたい場合にも難しくはありません。

1.2 最高レベルの後方互換

またPerlの実装は良い意味でも悪い意味でもこの世にひとつしか存在しないので、複数の実装間に存在するバグに悩まされる必要がありません。

また非常に高いレベルで後方互換性が維持されているので、長い期間にわたって安定性を求められるビジネス用途に向いています。

Windowsへのインストール方法については「ActivePerlインストールする」という記事を参考にしてみてください。

1.3 コンパイルがいらない、さくさく動く

Perlスクリプト言語です。JavaC言語のようにプログラムを実行するときに手動でコンパイル作業を行う必要がありません。作ったスクリプトはすばやく実行することができます。

何度も書き直す必要のあるプログラムではこれは大きな恩恵だと思えることでしょう。プログラムに集中できるのはとてもよいことです。

1.4 無料のCPANモジュールがたくさん

またPerlは現代的なプログラム言語のひとつです。モジュールという機能を利用して、たくさんのことを行うことができます。

CPANと呼ばれるだれでも無料で利用できる豊富なライブラリがあるので、Perlを使いたいという人もいるくらいです。Perlはモジュールのパッケージングやテストを非常に行いやすい環境が整っているので、比較的古い言語にもかかわらずいまだに開発は活発です。

1.5 きれいでわかりやすい表現

またPerlはきれいにソースコードを書くことができる言語のひとつです。Perlは比較的古い言語ですので、古めかしさはところどころには残っていますが、プログラムの構造についていえば、とてもわかりやすく記述することができます。書き方に慣れてしまえば、言語として自然な表現ができるところもPerlのよいところです。

Perlを選択するときのポイントは、

  • 「テキスト処理」が得意、処理速度は「高速」
  • 「インストール」は簡単、高い「後方互換性」の維持
  • コンパイル」作業が「必要なく」すばやく実行できる
  • 「現代的」な強力なプログラミング言語
  • プログラムの構造を「美しく」記述できる

2. Perlがお勧めなのはこんな人

PerlPythonRubyなどのスクリプト言語の仲間です。プログラミングで可能なことに関しては3つの言語でほとんど差はありません。「気軽に」「省メモリで」「多くの環境で利用でき」「実装が安定していて」「テキスト処理のパフォーマンスがよい」のがPerlの特徴だといえます。また文法はC言語JavaPHPJavaScriptに似ているので、覚えるのも比較的容易であるといえます。利用してみるとパフォーマンス面、機能、記述のしやすさなどのバランスがとても取れている言語であることが理解してもらえると思います。どうぞ使ってみてください。

PythonRubyと比較した最大のPerlの利点は、後方互換性の非常に高い言語なので、仕事で利用するには安心して使えるというところです。Perlは後方互換性を維持するスクリプト言語も参考にしてみください。

またPerlRubyよりもテキスト処理のパフォーマンスが2〜3倍くらいは速いというのが、感覚としてあります。またPerlのほうが省メモリで動きます。(Perl 5.12.2とRuby 1.9.1 Windows上でのテキスト処理のパフォーマンス比較, ベンチマークゲームというサイトでの比較)

またPHPやnode.jsなどと同じようにサーバーサイドでWebアプリケーションを作成するときにも、さらに便利に利用できます。CPANにあるライブラリを利用すれば、開発効率はとても高いものになります。

iPhoneでObjective Cを使ってネイティブなアプリを開発されている方は、HTML5を使ってWebアプリケーションを作成することにも挑戦してみたいと思うと思います。そんなときもPerlが役立ちます。(Webアプリケーションはこちらで解説)

Perlに関するよくあるFAQに関してはこちらを参考にしてみてください。

  1. 日常的な業務を自動化したいと考えている方
  2. Java、C、C++C#などの静的言語を覚えたので、次に動的言語を学習したい方
  3. ExcelVBAを覚えたので、もうひとつ使いやすい言語を覚えてみたい方
  4. iPhoneObjective-Cを使って開発していて、次にHTML5を使ったWebアプリを作成したい方
  5. PHPを覚えてWebプログラミングがでるようになったので、次に汎用的な言語を覚えたい方
  6. bashcshなどのシェルで文字列処理を行うのが大変だと思った方
  7. awksedによるテキスト処理に限界を感じている方
  8. python2とpython3の互換性に悩んでいる方
  9. rubyでテキスト処理を行っていてより速いパフォーマンスや安定性が必要と感じている方
  10. node.jsなどのサーバーサイドjavascriptを覚えたがより便利なスクリプト言語を探している方

サンプルコードによるPerl入門について

このサイトはサンプルコードを中心にしたPerlの入門サイトです。間違いの少ない、利用してもらいやすいPerlのドキュメントを書くことを目標にしています。サンプルコードによるPerl入門には他のPerlの解説サイトにないいくつかの特徴があります。

1. 現代的なPerlで記述されています

このサイトにあるソースコードは現代的なPerlの記述方法に従って書かれています。古くからあるサイトではいまだにPerl4の記述が紹介されていますが、このサイトにはPerl4の記述はありません。今からPerlを覚えるのであればぜひ、現代的な記述方法でPerlを覚えてください。このサイトにあるソースコードをまねすれば、現代的なよい書き方をすばやくマスターすることができます。

最初に次の二つのコンテンツを読んでみることをお勧めします。Perlの基本文法と現代的な記述方法を覚えることができます。

2. サンプルが豊富です

このサイトの記事の多くはごく簡単なサンプルに簡単な解説をつけるという方法で書かれています。詳細な解説は本質を理解したい人にとっては有用なものですが、実用的に使いたい人にとっては少し不便です。Perlを迷わず簡単に利用することができるように、簡単なサンプルと解説をたくさんそろえています。

3. 有用な情報が集約されています

このサイトは有用な情報を集めるということをひとつの目標にしています。基本的な文法を覚えた後は、標準関数や標準モジュールを覚えるのが上達する一番の早い道です。このサイトでには、正規表現、標準関数、標準モジュールなどの使い方についてもたくさんの解説があります。


サンプルコードによるPerl入門の特徴は

  1. 現代的なPerlで記述されている
  2. サンプルが豊富
  3. 正規表現、標準関数、標準モジュールなどの解説が豊富

サンプルコードによるPerl入門を読むにあたって

現代的なPerlではソースコードの先頭に

use strict;
use warnings;

を記述するという約束事があります。このサイトのサンプルについていえばこのstrictとwarningsの記述が存在しないものがあります。これは解説するときに記述がないほうが見やすいと判断した場合に行っています。皆さんが書くコードにはstrictとwarningsを必ず書いてください。

Perl6について

Perl6はPerl5と異なるプロジェクトとして開発が継続されている言語です。始めて聞く人はPerl6はPerl5の後継だと考えると思われるかもしれませんが、Perl6の現在の位置づけは現在ではそのようなものではなくなってしまいました。Perl6はPerl5とは別の言語であり、Perl5の姉妹的な位置づけとなっています。Perl6は現段階では、開発途上の言語です。

Perl5の開発を続けて欲しいという要望はたくさんの場所で存在するので、Perl5の開発は今でも活発です。またPerl5は過去の資産を大事にするという方針で開発が行われるため、他のスクリプト言語を含めて最も安心して利用できるスクリプト言語になっています。

結びに

ここまで長くなりましたが、Perlを学習して、Perlを楽しんで、Perlを使って仕事を楽にしてもらえればサイト運営者として幸いです。Perlをすばやく習得したいという方や、Perlのサンプルをたくさん見たいという方にぜひ「サンプルコードによるPerl入門」を教えてあげてください。