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模块(。