アルパカ三銃士

〜アルパカに酔いしれる獣たちへ捧げる〜

Perl の API を扱うときに便利そうな場所一覧

随時更新予定です。

Perl-guts

一番最初に読むべきドキュメント。pod に書かれていて色んなところで読むことができるが、個人的に GitHub 上で読むのが好き

github.com

Compiled code

Perlコンパイルについての記述がある。もし使ってる Perl-DDEBUGGING というオプションを有効にしてコンパイルされているものならば、次のように実行することで構文木を見ることができる。

perl -Dx hoge.pl

また perl -D で利用可能なフラグを確認することが可能。

Backwards compatibility

例えば既存の API について知りたいとき下記のように実行するとさまざまなAPI呼び出しの互換性情報を取得することもできることが分かる。

$ perl ppport.h --api-info=sv_magicext

https://github.com/Perl/perl5/blob/32128a7f27904b0ac4cc16cc0c5b0f5238cf60fd/pod/perlguts.pod#backwards-compatibility

Dynamic Scope and the Context Stack

Perl のスコープとスタックの関係性に関する内容。

https://github.com/Perl/perl5/blob/32128a7f27904b0ac4cc16cc0c5b0f5238cf60fd/pod/perlguts.pod#dynamic-scope-and-the-context-stack

ちなみにスタックの情報を格納してる構造体に関するコードはここ

https://github.com/Perl/perl5/blob/7896dde7482a2851e73f0ac2c32d1c71f6e97dca/cop.h#L990-L1026

XS-APItest

中でも APItest.xs の中で Perl API を使ったコードが盛り沢山なため参考になる。

github.com