use strict; use warnings; while ( ) { my @fields = split /,/; while ( my @chunk = splice @fields, 0, 3 ) { printf "%-17s", $_ for @chunk; print "\n"; } } __DATA__ 1,fred,jones,555-1212,123 Main St.,Boston,MA,00001,test@test.com 2,mary,smith,222-1515,321 Least St.,Hanover,NH,02022,testmary@test.com 3,jack,least,122-5511,231 Last St.,Franklin,CT,06001,nomail@test.com