perl ASCII 排序格式化输入%ENV

回复 收藏
编程输出%ENV哈希所有的键/值对,输出按照ASCII编码排序,分两列打印。并使用length计算出第一列宽度,格式化输出,纵向对齐。
  1. #! /usr/bin/perl
  2. my @a = keys %ENV;
  3. @a = sort @a;
  4. foreach my $x (@a) {
  5.         push (@n, length $x);
  6. }
  7. sub max {
  8.         my @b = @_;
  9.         $max = shift @b;
  10.         for (@b) {
  11.                 if ( $max < $_ ) {
  12.                         $max = $_;
  13.                 }
  14.         }
  15.         return $max;
  16. }
  17. $l = &max(@n);
  18. $l2 = "$l"."s";
  19. for $e (@a) {
  20.         printf "%-$l2 => %s\n", $e,$ENV{$e};
  21. }
2012-11-16 17:09 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: