[ [ "LOGENTRY 1", $1, $2, $3, $4..], [ "LOGENTRY 2", $1, $2, $3, $4..], ... ] #### while (/$regex/g) { push @buffer, [ substr($_, $last, $-[0]-$last), $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, ]; $last = $-[0]; } #### while (@x = /($regex)/g) { push @buffer, [ @x ]; }