use strict; use warnings; while (my $line = ) { my ($lhs,$rhs) = split /\|/, $line, 2; printf "%-45s%s", $lhs,$rhs; } __DATA__ ABCDEFGHIJKLMNOPQRST|1234 ABCDEFGHI|12345 ABCDE|1234 ABCDEFGHIJKL|123 ABCDEFG|123456 ABCDEFGHIJKLMNO|12