Я пытаюсь заменить некоторые цифры в строке с использованием переменных, и я столкнулся с проблемами, которые я не могу решить. После ввода:Perl - замена числовых строк на содержимое переменной
111111 133433.000 222222 5225.9860 360 01333.4400 90 10.37 137.71 190410
111111 133434.000 222222 5225.9837 360 01333.4432 90 1.11 138.34 190410
Скрипт должен заменить значение 1.11
во второй строке с 10.37
от первой линии. В обрабатываемом файле имеется несколько тысяч строк, поэтому строки будут оцениваться, а номера 1.11
и 10.37
будут храниться в переменных. В данном конкретном случае:
$speed = 1.11
$speed_p = 10.37
$tmpline - current processed line (part of an array)
Я использую это для замены:
$tmpline =~ s/$speed/$speed_p/eeg;
, к сожалению, эта команда игнорирует «точку» в $speed
и я получаю следующий результат для второй линии:
10.3711 133434.000 222222 5225.9837 360 01333.4432 90 10.37 138.34 190410
Таким образом, команда заменяет 111
и 1.11
с новым значением, есть способ, чтобы улучшить это и избежать й e "точка" в переменной?
Заранее благодарен!
Alex
Использование двойной оценки '/ ee' не только не обязательно, но и очень опасно и очень плохо. Потому что он выполняет произвольный код в вашей системе. – TLP