在Perl中,我试图将ENV变量及其值打印在两个不同的列中,但它不起作用

  • 本文关键字:两个 不起作用 Perl ENV 打印 变量 perl
  • 更新时间 :
  • 英文 :

my $longest=0;
foreach my $key ( keys %ENV ) {
my $key_length = length( $key );
$longest = $key_length if $key_length > $longest;
}
foreach my $key ( sort keys %ENV ) {
printf "%-${longest}s %sn", $key, $ENV{$key};

这确实在两个单独的列中打印了ENV变量名称和值;但是长期缠绕的env值:(

关于我如何确保第二列不会缠绕到第一列空间的任何指针?

输出我得到

xyz  123
abc  456,
789

所需的输出

xyz  123
abc  456,
     789
use Text::Wrap qw( wrap );
# local $Text::Wrap::columns = ...;  # Default = 76
my $indent = " " x ($longest + 1);
for my $key ( sort keys %ENV ) {
   printf("%-${longest}s %sn", $key, wrap("", $indent, $ENV{$key}));
}

另外,人们可能可以使用perl6 ::表单(提供Perl6式表单的Perl5模块(。

最新更新