#!/usr/bin/perl $_=qq~ 1234 34 -4567 3456 -0.35e-0,2 56grf45 -.034 E20 -.034 e2,01 -,045 e-,23 -,034 e201 3e-.20 -,045 e-,23 e-0.88 4 E-0.20 22 E-21 -0.2 w 4 3 345 2 ^-,3 ~; $a='[+-]?\d*[,.]?\d+';print"$_\n"for/$a\s?[e^]$a|$a|[+-]?e$a/igСоответственно идея в том, чтобы сократить число символов в строчке, заменяя их на содержимое переменной $a. цикл for идет пока выполняется регулярное выражение(т.к. оно возвращает список значений $_ в силу наличия квантификатора g), читающее переменную $_.