my @max; foreach ( keys %ENV){ push @max, length $_; } my @sorted_max = sort { $a <=> $b } @max; my $max_num = pop @sorted_max; while ( my ($key, $value )= each %ENV) { $value = $value // 'undefined value'; printf "\n%-*s: %s", $max_num, $key, $value; }