use strict; use warnings; use constant FIELDS => 26; my $line = ''; while () { s/\r//g; chomp; $line .= $_; my $fields = $line=~ tr/|//; next if FIELDS > $fields; die "Field count too great in line $." if FIELDS < $fields; my @fields = split /\|/, $line; $line = ''; print join ' ', @fields, "\n\n"; } __DATA__ EN|486822|||KKJSKA|L|L00219796|STR, JASON A|JASON|A|STR|||||3710 |NORTH CANTON|OH|44720|||000|0003053964|I||| EN|486823|||YYYYYY|L|L00738657|OCID, SEAN M|SEAN|M|OCID|||||3846 Foxtail Lane |CINCINNATI|OH|45248|||000|0009544289|I||| EN|486824|||KXXXXP|L||DSBS, ANDREW J|ANDREW|J|DSBS|||||28835 STILXXXXXX|FARXXXXX HILLS|MI|48334|||000||I|||