use strict; use Data::Dumper; my @four; my @all; my $count = 0; while () { s/\s+$//; push @four , $_; $count++; if ( ($count % 4) == 0) { push @all , [ @four ]; @four = (); } } print Dumper(\@all); __DATA__ name1 address1 phone1 fax1 name2 address2 phone2 fax2