Perl 6 Plain-Old-Documentation(おそらくファンシー・ニュー・ドキュメンテーション)には、見えるもののドキュメントを作成できるいくつかの機能があり、ドキュメントは実行時に変数$=pod
に表示されます。埋め込みドキュメントを読み込むためにPerl 6プログラムをコンパイルする必要はありますか?
しかし、プログラムのテキストに誤りがあったときにドキュメントを読むことができなかったのに驚きました。私は--doc
スイッチ、プログラムの構文事項(およびBEGIN
実行)でそれを実行すると
use v6;
BEGIN { put "BEGIN" }
INIT { put "INIT" }
CHECK { put "CHECK" }
"foo" "bar";
DOC INIT { put "DOC INIT" }
DOC BEGIN { put "DOC BEGIN" }
DOC CHECK { put "DOC CHECK" }
=begin pod
=head1 This is a title
This is a bit of pod
=end pod
:
$ perl6 --doc doc.p6
BEGIN
===SORRY!=== Error while compiling ...
Two terms in a row
------> "foo"⏏ "bar";
expecting any of:
infix
infix stopper
statement end
statement modifier
statement modifier loop
私はそれを修正すると、ここで私は2つの文の間の文の区切りを残してきました、私は(そう、Perl6のがコンパイルされます)と、コンパイル時のフェイザーが実行いくつかの警告が出ます:
BEGIN
DOC BEGIN
DOC CHECK
CHECK
WARNINGS for /Users/brian/Desktop/doc.p6:
Useless use of constant string "bar" in sink context (line 9)
Useless use of constant string "foo" in sink context (line 9)
INIT
DOC INIT
This is a title
This is a bit of pod
我々はすでに、これはPerlの5 0123に少し危険です知っていますとBEGIN
ブロックでコードを実行できます。 How to check if a Perl script doesn't have any compilation errors?を参照してください。私はこれが既に知られているものよりも危険ではないとは思わないが、今は明示的にプログラムのステートメントをコンパイルすることを求めていないときに起きている。
私はPerl 6ポッドの詳細を掘り下げませんでしたし、なぜ宣言子ブロックと.WHY
(クールな機能)の外で必要になるのでしょうか?これはトラブルにつながる可能性があります。おそらく、ポッドを抽出する外部プログラムはありますか?または、プログラムが実行されない限り宣言子なしでやる方法?
私は機能要求をしていません。私は単に存在するものを説明しているだけです。 –