in reply to Numerical Regular Expression for pattern match

You wrote:
if (ln =~ /(\[+-]d) +(\[+-]d.d) +(\[+-]d.d) +(\[+- +]d.d) +(\[+-]d.d) +(\[+-]d.d)/) { do something}
Here's where you went astray:

\d matches a digit. \[+-]d.d matches an open_square_bracket, a plus, a minus, a close_square_bracket, a lowercase "d", any single character except newline, and another lowercase "d".

If you want to match "3.4" or a similar x.x format number, you'd want \d\.\d.

If you want to match a number, you can use one of the regexes in How do I determine whether a scalar is a number/whole/integer/float? (You'll want to remove the anchors and manage the capturing parens, see below.) Or you could use Regexp::Common.

It's a good idea to go read the Regular Expression Reference and the Regular Expression Tutorial.

-QM
--
Quantum Mechanics: The dreams stuff is made of