Perl Hackers Hub
第62回 Perl歴史散策 ―インタプリタの実装と,構文の進化をたどる(3)
Perl 5.0──現在のPerl
1994年10月にPerl 5.perl-5.
です。以降Perlは,
Perl 5.
- 変数のスコープをレキシカルに限定する
my
の登場 - Perl APIをCから利用し,
一部の処理をCで実装することを可能にしたXSの登場 - ビルド時に利用される最小単位のインタプリタであるminiperlの登場
- リファレンスの登場
- リファレンスと
bless
を組み合わせることによるオブジェクト指向の導入
インタプリタの実装
Perl 5.
- データ型の内部構造体の大幅な変更
- 文字列型STRが,
現在のPerlでも利用されるSV構造体にリプレイスされる - 配列やハッシュの内部構造の再実装
- 抽象構文木の中心となるデータ型も,
ARG型からOP型へ書きなおされる - Perlの標準関数の評価を行う処理の再実装
- 従来の関数を利用した定義から,
マクロを活用した定義に変更される
さらに,
ライブラリ側の対応
Perl 5.pl
拡張子のPerlスクリプトをロードしライブラリとして利用していましたが,pm
拡張子でモジュール専用ファイルを作成することになりました。package
構文なども,my
での宣言を行うなど,
Perl 5.0以降の進化
Perl 5.
バージョンは,Perl 5.
以降では,perl5.
と3桁の数値とパッチの数で表現されていたバージョンが,
インタプリタの実装の進化
インタプリタは,
たとえばC言語のスタイルの変更などが行われています。Perl 5.
またPerl 5.isa
演算子が追加されました。演算子が追加されると,op.
などに追記されています。
構文の進化
最初にあった比較的大きな構文の変更はPerl 5.our
が登場し,
ほかにも,
最近の進化では,if
文中などで3変数の比較を行う際に,($lower < $n) && ($n < $upper)
と書く必要がありました。Perl 5.$lower < $n < $upper
とまとめて記述することが可能となりました。
- 注1)
- コミットIDの
8ac853655d9b744749adcb9687c13d99cdd6e9fb
などです。
これからのPerl 5
現在,
Perl 6そしてRaku
さて,
2000年に設計が始まったPerl 6は,
Rakuは,print
関数に改行を自動で付けたsay
関数,Class::MOP
やMoose
などがあります。
これからのRaku
以前は起動が壊滅的に遅かったRakuですが,
Rakuの次期バージョンである6.
までの具体的な道筋はGitHub Projectsで管理されていますので,
まとめ
本稿では,
本稿が,
さて,
本誌最新号をチェック!
WEB+DB PRESS Vol.128
2022年4月23日発売
B5判/160ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-12789-3
- 特集1
演習で慣れる!
データベース入門
SQL操作,テーブル設計,分析用データ処理 - 特集2
クラウド構築ツールの大本命!
ゼロから学ぶTerraform - 特集3
チャットやIssueでちゃんと伝えたい!
エンジニアのための英語
バックナンバー
Perl Hackers Hub
- 第71回 ISUCONの実装から最近のPerlを学ぶ ―わかりやすく変更しやすいコードを実現する考え方と方法(2)
- 第71回 ISUCONの実装から最近のPerlを学ぶ ―わかりやすく変更しやすいコードを実現する考え方と方法(1)
- 第70回 Raisin入門 ―Rest APIマイクロフレームワークを使ってみよう!(2)
- 第70回 Raisin入門 ―Rest APIマイクロフレームワークを使ってみよう!(1)
- 第69回 表形式データを操るUNIXシェル型Perl製コマンド群 ―ビッグデータ時代の汎用的なデータ整備と分析のために(2)
- 第69回 表形式データを操るUNIXシェル型Perl製コマンド群 ―ビッグデータ時代の汎用的なデータ整備と分析のために(1)
- 第68回 他言語のライブラリをPerlに移植する(2)
- 第68回 他言語のライブラリをPerlに移植する(1)
- 第67回 GitHub APIによるチーム開発の効率化 ―基本操作から,GitHub Webhooksの活用まで(2)
- 第67回 GitHub APIによるチーム開発の効率化 ―基本操作から,GitHub Webhooksの活用まで(1)