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.121
2021年2月22日発売
B5判/168ページ
定価(本体1,480円+税)
ISBN978-4-297-11960-7
- 特集1
[さらに速く! さらに書きやすく!]
詳解Ruby 3
JITコンパイラ,並列プログラミング,静的型解析 - 特集2
UIKit,SwiftUI,iPadOS,ウィジェット
iOS 14最前線 - 特集3
個人と組織の目標がリンクする管理手法
OKR運用指南
バックナンバー
Perl Hackers Hub
- 第65回 依存モジュールの更新 ―update-cpanfile,GitHub Actionsで実現!(2)
- 第65回 依存モジュールの更新 ―update-cpanfile,GitHub Actionsで実現!(1)
- 第64回 少しマニアックなPerlのテクニック―特殊変数,低レベルの標準関数を使いこなす(2)
- 第64回 少しマニアックなPerlのテクニック―特殊変数,低レベルの標準関数を使いこなす(1)
- 第63回 PPIとPerl::Tidyを組み合わせて作るコード整形ツール(2)
- 第63回 PPIとPerl::Tidyを組み合わせて作るコード整形ツール(1)
- 第62回 Perl歴史散策 ―インタプリタの実装と,構文の進化をたどる(3)
- 第62回 Perl歴史散策 ―インタプリタの実装と,構文の進化をたどる(2)
- 第62回 Perl歴史散策 ―インタプリタの実装と,構文の進化をたどる(1)
- 第61回 GitHub ActionsとAmazon ECSを使ったDockerアプリケーションの自動デプロイ(3)