我正在尝试将嵌入式 Pod 作为 ANSI 文本输出到终端。在 Perl 5 中我可以使用Pod::Text::Termcap https://metacpan.org/pod/Pod::Text::Termcap:
use strict;
use warnings;
use Pod::Text::Termcap;
my $str = do {local $/; <DATA>};
my $parser = Pod::Text::Termcap->new();
$parser->parse_string_document( $str, \*STDERR );
__DATA__
=head1 SYNOPSIS
my_test_command I<filename> [OPTIONS]
=head1 ARGUMENTS
=over 4
=item I<filename>
File name to test
=back
=head1 OPTIONS
=over 4
=item B<--help>
Prints help
=back
=head1 DESCRIPTION
A sample test command with embedded Pod
Output:
我尝试在 Perl 6 中实现相同的目标:
use v6;
%*ENV<POD_TO_TEXT_ANSI> = 1;
my @lines;
for $=pod -> $pod-block {
for $pod-block.contents -> $pod-item {
use Pod::To::Text;
push @lines, pod2text($pod-item);
}
}
say @lines.join("\n\n");
=begin pod
=head1 SYNOPSIS
my_test_command I<filename> [OPTIONS]
=head1 ARGUMENTS
=item I<filename>
File name to test
=head1 OPTIONS
=item B<--help>
Prints help
=head1 DESCRIPTION
A sample test command with embedded Pod
=end pod
Output:
正如所见,Perl 6 输出中缺少 ANSI termcap 转义符。如何在 Perl 6 中获得 ANSI 功能,例如粗体和下划线文本?
Pod::To::Text 接受环境变量POD_TO_TEXT_ANSI
这将打开此功能。在 a 中设置该环境变量DOC
不过,如果选择了移相器,则可能为时已晚Pod::To
然而,模块是在解析 perl 6 代码之前加载的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)