#! perl -sw use strict; use List::Util qw[ max ]; my $first = <>; my @ugly = <>; my $last = pop @ugly; my @bits = map[ m[(^\s+)(\S+)\s*=>\s*(\S+),\n] ], @ugly; my $largest = max( map{ length( $_->[1] ) } @bits ); print $first; printf "%s%-${largest}s => %s,\n", @$_ for @bits; print $last;