Perl単語

パール
3.2千文字の記事
  • 3
  • 0pt
掲示板へ

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

概要

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

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

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

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

いいところ

むつかしいところ

処理系

perl

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

CGI経由でのPerl

CGI経由で用いる場合はFastCGImod_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ではpipPHPではPEARがある。

Hello, world

(Command Line)
>perl -e "print 'Hello, world'"    
(Console Program, Linux)
#!/usr/bin/perl
binmode STDOUT, ":utf8";
use utf8;
use strict;
use feature qw(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 と Perl7

現在のPerlのメジャーバージョンは5である。

かつて Perl 6と呼ばれていた言開発者こそ同じラリー・ウォールであるものの、大幅な変更が加えられたため互換性はきに等しかった。Perl5とは別の言として扱われるようになったPerl 6は、2019年10月に“Raku”という名称に変更され、Perlの姉妹として存続していくこととなった[1]。なお、Rakuは言仕様名であり、その実装・処理系は“rakudo”という。かつてはPugsという別の実装開発されていた。

2020年には、Perl 5.32を元にした“Perl 7”が発表されたが、後にこの計画は一旦取り下げになっている[2]

関連動画

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

関連商品

ニコニコ市場
ISBN-13 : 978-4-87311-824-6
Randal L. Schwartzほか著
ニコニコ市場
ISBN-13 : 978-4-87311-628-0
Randal L. Schwartzほか著
ニコニコ市場
ISBN-13 : 978-4-87311-096-7
ラリー・ウォールほか著

関連コミュニティ

関連項目

外部リンク

脚注

  1. *Raku公式サイトFAQ (英語)exit
  2. *Perlの最新動向 2021 - Mobile Factory Tech Blog (2021/10/13)exit

【スポンサーリンク】

  • 3
  • 0pt
記事編集 編集履歴を閲覧

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

Perl

7 ななしのよっしん
2011/04/06(水) 19:24:42 ID: sWWhP1ez0+
SpeedyCGIの存在が・・・忘れられとる
👍
高評価
0
👎
低評価
0
8 ななしのよっしん
2012/12/06(木) 19:33:26 ID: hFZN7TzEsr
> 「perl」 はブードゥー教である
> ――少数の人だけしか理解できない呪文の不可解な連なりであり、
> ヤギの血を含み、あなたの永遠に堕落させる。
> 上があなたに金曜21時に緊急の仕事を命ずるときにしばしば使われる。
👍
高評価
0
👎
低評価
0
9 ななしのよっしん
2013/11/20(水) 23:51:58 ID: 6X4HAeOaJS
欠点にWindows,Windowsと書かれているけど,
Unixプログラム群を置き換えることを考えて作られたんだから,
Windowsで動作させることを前提に評する方がおかしいんだよなあ…
👍
高評価
0
👎
低評価
0
10 ななしのよっしん
2014/07/03(木) 10:59:35 ID: SSR/H+K6Qr
・書きやすく読みにくい
正規表現を強みとしてインターネット初期のCGI用途に人気を集めた

この2点書いてれば十分だべ
👍
高評価
0
👎
低評価
0
11 ななしのよっしん
2018/07/31(火) 12:44:50 ID: H3sdJ9+vym
CGIで注された言ではあるが, あくまで「当時の言の中ではCGIに向いてた」だけで
本領はgrep/sed/awk/shなどを組み合わせてやるようなテキスト処理の代替なんだよなぁ

* 組み合わせるツール群は環境差がしいものが多い=>Perlはそれらに環境差が少ない
* 組み合わせる関係上どうしても遅くなる=>Perlなら1つのプロセスで済ませられるので高速

辺りがPerlの本来の強みだと思う
他にもPerlなら1つの文法で済むとかもあるけど, Perl自体の文法がカオスなのでそれはそんなに利点でもないかな
👍
高評価
0
👎
低評価
0
12 ななしのよっしん
2019/01/01(火) 08:03:22 ID: 11GFVzhfU4
awk先生はまだ現役なんだよなあ
👍
高評価
0
👎
低評価
0
13 ななしのよっしん
2019/02/01(金) 22:40:59 ID: X4mDxbaCtH
>>11
底した後方互換性のお陰でどの入門解説サイトを見ても同じ説明になってくれているのがありがたい。

もし、今更Perlなんて…と思ってる連中でも、言の勉強はしなくても、システムは動かせるようにしとくとだいぶ仕事率が違うし、ソースファイル持っておいてバッチ作っておくだけでも幸せになれる。

フォルダやファイル検索ソートなんでもしてくれる。
👍
高評価
0
👎
低評価
0
14 ななしのよっしん
2019/12/18(水) 21:42:22 ID: w53DTXg0Qt
Perl 6」からRaku言への名が本決まり、ってことでいいのかな
https://p6weekly.wordpress.com/2019/10/15/2019-41-new-wineskins/exit
👍
高評価
0
👎
低評価
0
15 ななしのよっしん
2020/06/29(月) 00:04:59 ID: w53DTXg0Qt
👍
高評価
0
👎
低評価
0
16 ななしのよっしん
2021/10/17(日) 06:44:34 ID: w53DTXg0Qt
Perl7の発表は取り下げられてた
https://tech.mobilefactory.jp/entry/2021/10/13/100000exit
👍
高評価
0
👎
低評価
0

ニコニコニューストピックス