#!/usr/bin/perl -w use strict; my (@data, $i); my @logfile = ; for (@logfile) { /blahblah/? splice @data, $i++, 0, $_:push @data, $_; } print @data; __DATA__ foo 1 zot foo 2 blahblah bar 1 zot bar 2 zot bat 1 blahblah bat 2 baz 1 baz 2 zot #### #!/usr/bin/perl -w use strict; my (@data, $i); for () { /blahblah/? splice @data, $i++, 0, $_:push @data, $_; } print @data; __DATA__ foo 1 zot foo 2 blahblah bar 1 zot bar 2 zot bat 1 blahblah bat 2 baz 1 baz 2 zot