相关疑难解决方法(0)

不要使用p6doc显示声明符块

我写了一个小的示例文件来了解有关Perl 6 POD的更多信息,我正在使用p6docPOD文档渲染一个小的手册页.但是,p6doc也尝试解析POD文档之外的声明器块.这在输出中看起来不是特别好.有没有办法在使用时忽略声明器块p6doc

我正在使用的代码示例是:

#! /usr/bin/env perl6

use v6.c;

#| Greet people on the command line.
sub MAIN (
    #| A name to greet.
    $names,

    #| Optional. Additional names to greet.
    *@names,
) {
    *
}

=begin pod

=NAME    greeter
=AUTHOR  Patrick Spek
=VERSION 0.0.1

The greeter application greets someone via a terminal. At least 1 name is
required, but multiple names can be given to greet many people in one go.
=end pod …
Run Code Online (Sandbox Code Playgroud)

documentation perl6

9
推荐指数
1
解决办法
125
查看次数

在不显式导出的情况下获取模块的Pod

实际上,使用Pod 6 DSL的Perl 6程序中文档被解析为代码的一部分;这使得该文档可以在程序内部作为$=pod变量使用。但是,我希望能够访问该变量,以便从例如测试中对其进行处理。在此示例中,我为Perl 6 Advent Calendar编写了该代码,只是将其导出为类(在这种情况下为语法)变量:

our $pod = $=pod[0];
Run Code Online (Sandbox Code Playgroud)

然后,我可以这样使用它:

use Data::Dump;

use MONKEY-SEE-NO-EVAL;

sub MAIN( $module  ) {
    try require ::($module);
    say Dump( $::($module)::pod, :max-recursion(2) );

}
Run Code Online (Sandbox Code Playgroud)

当使用类的名称和正确的路径调用时,此方法有效。但是它仍然需要显式导出变量。

我在一些代码中看到可以将precomp存储用于同一件事(抱歉,没有很好的单一来源来解释这些内容)。最终,这条线

 return nqp::atkey($handle.unit,'$=pod')[0];
Run Code Online (Sandbox Code Playgroud)

通过访问precomp存储所代表并包含在中的模块的Pod来达到目的$handle.unit。事实是,使用NQPnqp::atkey运算符,这实际上是较低的级别,而不是perl

有很多方法可以做到这一点,所以我可以想到两个不同的可能问题。1.是否可以通过FQN(以::开头)访问required或used单元的Pod ?2.我们是否可以访问required或used单元的precomp句柄,以便我们可以nqp::atkey直接调用?

perl6 precompiling nqp pod6

7
推荐指数
1
解决办法
94
查看次数

标签 统计

perl6 ×2

documentation ×1

nqp ×1

pod6 ×1

precompiling ×1