my @outfile = ( "line1=10", "line2=30", "line3= I am a monk", "line4=false", "line5=20", "line6=42", "line7= But I haven't read perlretut and I should have!", "line8=true", "line8=34", "line9=67", "line10=Coder", "line11=false", ); my @quads; while (@outfile) { my $line; for (1..4) { # presumption: each data set is made up of 4 consecutive lines * my $line_from_outfile = shift (@outfile); $line_from_outfile =~ /line\d+=(.*)/; $line .= $1 . "/" ; } push @quads, $line; $line = ""; } for my $quad(@quads) { print $quad . "\n"; # to console; writing to file "final.txt" is left as an exercise for OP }