#!/usr/bin/perl use Data::Dumper; my %width = (); my @lines = (); while (my $line = <>) { chomp $line; push @lines, $line; my @parts = split(/\t/, $line); my $counter = 0; for (; $counter < @parts; $counter++) { my $partlen = length($parts[$counter]); $width{$counter} = $partlen if !defined($width{$counter}) or $partlen > $width{$counter} } } for my $line (@lines) { my @parts = split(/\t/, $line); my $counter = 0; for (; $counter < @parts; $counter++) { my $partlen = $width{$counter}; printf "%-*s | ", $partlen, $parts[$counter]; } printf "\n"; } #print Dumper(\%width);