in reply to multi-line parsing

Try using the range operator - something like i.e. untested...
use warnings; use strict; use autodie; open INF, "<$file"; while (<INF>){ if(/First line of text$/ ... /in the third line I have (\d*\.\d*)$ +/) { push @array, $1 if $1; } }
Note the use of both strictures and autodie - the latter causing the snippet to die if open() fails.

A user level that continues to overstate my experience :-))