编程输出%ENV哈希所有的键/值对,输出按照ASCII编码排序,分两列打印。并使用length计算出第一列宽度,格式化输出,纵向对齐。
- #! /usr/bin/perl
- my @a = keys %ENV;
- @a = sort @a;
- foreach my $x (@a) {
- push (@n, length $x);
- }
- sub max {
- my @b = @_;
- $max = shift @b;
- for (@b) {
- if ( $max < $_ ) {
- $max = $_;
- }
- }
- return $max;
- }
- $l = &max(@n);
- $l2 = "$l"."s";
- for $e (@a) {
- printf "%-$l2 => %s\n", $e,$ENV{$e};
- }
编辑回复