perl-entrance-org/workshop-2014-01

# Perl という言語について

boolfool opened this issue · 0 comments

Perl という言語について

Perlって何?

  • 1987年, Larry Wallが開発したプログラミング言語.
    • Ruby, Python, PHPと並ぶLL言語(Lightweight Language)の1種.
    • C言語, sh, sed, awk の特徴を取り入れた動的型付け言語.
    • RubyやPHPに影響を与えた.
    • 「Perl」は言語そのもの, 「perl」はその処理系を示す.

TMTOWTDI

  • Perlのスローガン. 「ティムトゥーディー」と読む.
    • "There's more than one way to do it."
    • 「やり方はひとつじゃない」.
  • Larryは「プログラミング言語は, いろんな対象をシンプルに記述する為にある程度複雑でなければならない」と信じている.
    • Perlは, 同じ意味を持つ処理をいろいろな書き方で表すことができる.

簡潔にプログラムを記述できる

my $number = 123;
my $string = 'perl';
print $string . $numbrer . "\n";
  • 動的型付け言語なので変数に型は存在しない.
    • myというのはスコープの違いを示す. これは明示的に指示する必要がある.
  • C言語やJavaのような, 型のキャストなどは必要ない.
  • よって, このように数値を格納した変数$numberと, 文字列を格納した変数$stringを直接文字列として結合(.演算子によって)できる.

高い後方互換性

  • Perlのバージョンアップによって昔のスクリプトが動かなくなる, ということはほとんどない.
  • もちろん, Perlもバージョンアップによる細かい機能変更はある.
    • しかし, 基本的な処理については後方互換性が維持されている.

様々な環境で使用可能

  • Linuxのほとんどのディストリビューションで標準装備となっている.
    • システムを管理するツールがPerlで書かれている為.
  • Pythonもほとんどのディストリビューションで標準装備.
  • Rubyを標準で装備するディストリビューションはまだ少ない.
    • Macは標準装備, marvericks でのバージョンは 2.0.0p247.

余談: Perl6について

  • Perl5とは別に, Perl6も開発されている.
    • 当初はPerl5の後継となるはずだったが, 後に「Perl5とは別に開発を進める」と公式に発表された.
    • よって, Perl5の開発は継続される.
    • 現在の最新版は5.19.11, perl -vでは, Perl5のバージョン19.11と表記される.

PerlとCGI

  • 一時期, 「PerlでWebサービスを作るならCGI」という時代がありましたが, 今はそうではありません.
  • 最近は, PSGI(Perl Web Server Gateway Interface)という仕様に対応したWAF(Web Application Framework)を使っての開発が増えています.
    • Perlの代表的なWAFとしては, MojoliciousやAmon2などがあります.
  • Perl入学式は「モダンなPerlを教える」という方針を取っていますので, CGIについては触れません.