Perl 単語


ニコニコ動画でPerlの動画を見に行く

パール

2.5千文字の記事
これはリビジョン 2301426 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

Perlとは、プログラミング言語、及びその処理系である。書きやすく読みにくいことに定評がある。

概要

ラリー・ウォール(Larry Wall)により作成されたスクリプト言語Perl、及びその処理系(こちらはperlと書く)。

元々は真珠の英語表記pearlであったが、別の言語と名前がかぶっていることに気がついたため今の名前となっている。

正規表現を利用した文字列処理に優れており、簡単なコマンドライン制御ツール、テキスト処理、CGIプログラムにしばしば用いられてきた。

書きやすいため、Javascriptが存在すらしなかった1990年代前半以前は、Web上でインタラクティブなページを作るためのCGI用途では主流を占めていたが、読みづらさが災いしたのかRuby, Python, Javascriptなどの後続の言語にその地位を奪われてしまった。

いいところ

  • 様々な記述方式があるため、慣れると快適に記述することができる
  • CPANが利用できるのであれば他の人が作ったモジュールを再利用できる
  • オブジェクト指向を柔軟に表現することができる
  • 文字列に対する演算能力が高い

むつかしいところ

  • CGIスクリプトを記述する際、shebangがWindows系OSとそれ以外とで異なるためソースコードをそのまま流用できない
  • 定義済み変数が多すぎて、理解するまで他の人のソースコードが読めない
  • 文字列演算処理の指定が細かいため、慣れるまでソースコードが読めない
  • 略記法がしばしば使われるため、その存在を知らないとソースコードが読めない
  • 詳細な動作原理を理解しないとCPANのソースコードが読めない
  • Windows上でCPANの資産を利用できないケースがある
  • OSに対して十分な権限がないとCPANを利用する手順が難しくなる
  • モジュールのバージョンは頻繁に上がるため、(企業での利用に特に多い)バージョン指定を厳密に行う条件においての管理・運用が非常に手間である
  • CPANのなにかのモジュールが利用不可となると、少しでもそのモジュールに依存している他のモジュールも連鎖的に利用不可となる
  • perlbrewなどを利用してPerlの環境を整えておかないと、システムで利用されるPerlの処理に影響を与えたり、システム側でPerlの更新があったときに予期せぬ影響を受けたりする。
  • my, local, ourとある変数スコープが理解しづらい
  • JavaやC++, C#と比べると、言語設計によってオブジェクト指向をサポートしているわけではないので、既存のオブジェクト指向言語に比べて動作の理解が難しい
  • リファレンスと、それを用いたスカラ、配列、ハッシュの理解が難しい
  • 文字列の取り扱いに対してutf8フラグやエンコーディングをしっかり意識していないと容易に文字化けしたりプログラムが動作しなかったりする
  • (日本語による)webによる独学の手段を見つけるまでが難しい(大体の場合、PerlはCGIとしてのPerlとして紹介され、その導入のためにwebサーバとPerlの動作環境をWindowsに入れ、設定を行うまでが非常に煩雑である)

処理系

perl

フリーソフトウェアで、アーティスティックライセンス/GPLにより配布されている。実際に開発されている唯一の処理系である。

CGI経由でのPerl

CGI経由で用いる場合はFastCGIやmod_perl(Apache)などを使用すると、プログラムがメモリにキャッシュされ、高速に処理出来るが、内容がキャッシュされることを前提に記述されたコードでないと正しく実行出来ないため、高速化を行うためにはそれを意識したプログラムの作りとしなければならない。

PSGI

webアプリケーションのためのPerl利用方法として、昔からの方法であった標準入力(+環境変数)標準出力とのやりとりではなく、Perlでの処理を前提とし、Perlのやりかたで入出力手段(インターフェイス)を定義したのがPSGI(Perl Web Server Gateway Interface Specification)である。これにより、PSGIのやりかたで記述されたPerlのwebアプリケーションはPSGIを提供するどのサーバーでも実行可能となる。

PSGIが提案される以前にも、Perlでwebアプリケーションを実装するための様々なやり方が存在したが、それは特定のフレームワーク・ミドルウェア・webサーバに依存する(つまり移植性に乏しい)ものであった。

CPAN

PerlはCPANというパッケージ管理システムを用いることによって機能を付加できる

同様の物に、RubyではRubyGems、Pythonではpip、PHPではPEARがある。

Hello, world

(Command Line)
>perl -e "print 'Hello, world'"    
(Console Program, Linux)
#!/usr/bin/perl
binmode STDOUT, ":utf8";
use utf8;
use strict;
use Perl6::Say;

say "Hello, world!";
(CGI,Linux)
#!/usr/bin/perl
binmode STDOUT, ":utf8";
use utf8;
use strict;

print "Content-type: text/html charset=utf8\n\n";
print "<html><head></head><body><p>Hello, world!</p></body></html>";

Perl6

Perlのメジャーバージョンは6まであるが、Perl6は開発者こそ同じラリー・ウォールであるものの、大幅な変更が加えられたため互換性はないに等しくPerl5までとは別の言語と考えられている。

関連動画

左: Perlで作っているらしいが…なんぞこれ
右: グニャラくん★の歌ってみたネタ…ニッチすぎるだろうJK

関連商品

ニコニコ市場は2023年11月に終了しました。ニコニコ市場は2023年11月に終了しました。ニコニコ市場は2023年11月に終了しました。ニコニコ市場は2023年11月に終了しました。

関連コミュニティ

ニコニコミュニティは2024年8月に終了しました。

関連項目

  • プログラミング言語
  • Ruby
  • Python
  • PHP
  • CGI
  • プログラミング関連用語の一覧
  • Perlのようなもの

外部リンク

関連記事

親記事

子記事

兄弟記事

  • なし

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
CCD-0500[単語]

提供: バソキャン

もっと見る

急上昇ワード改

最終更新:2025/12/15(月) 01:00

ほめられた記事

最終更新:2025/12/15(月) 01:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP