map { if ( m/^(.+?)\((\d+)\)\s-\s\[(.+?)\].+?"(.*?)"\.$/ ) { my ($disc_file,$page,$key,$val) = ($1,$2,$3,$4); [$_,$disc_file,$page,$key]; } } #### map { m/^(.+?)\((\d+)\)\s-\s\[(.+?)\]/ ? [$_,$1, $2, $3] : () }