я пытаюсь изменить несколько строк в файл с помощью Perl, используя приведенную ниже логику ..Perl разбор вставки новой строки и^М
open FILE1, "< /tmp/sam.dsl" //In read mode
open FILE2, "> /tmp/sam2.dsl" // Open in write mode
while(<FILE1>)
if($_=s/string/found/g)
push FILE2, $_...
Я могу изменить содержание, однако, когда я читал файл имеет^M в нем ..
мой файл данных в формате ниже
name 'SAMPLE'
я хотел бы изменить это
name 'SAMPLE2'
в настоящее время с моим кодом она меняется
name 'SAMPLE2
'
, который создает новую строку, а затем делает замену.
Нужно ли мне использовать любой режим, чтобы открыть файл для записи ..?
В настоящее время мой код вставляет новую строку после чтения, а затем толкает^M – user2189668
Можете ли вы показать больше реального кода? Этот псевдо-код, который вы там написали, не имеет особого смысла. Вы забыли «chomp», вы забыли «~», что вы делаете, когда вы что-то заменили? Вы используете 'strict' и' warnings'? Если не включить это. О, и, может быть, актуально для этого вопроса: на какой операционной системе вы работаете? –
'code' open TEMPLATEFILE, '<: encoding (UTF-8)'," /tmp/TemplateDSL.dsl "или die" Не удалось открыть файл $! "; open JOBFILE, '>: encoding (UTF-8)', "/ tmp/sam.глубинный рассеивающий слой»или умереть "Не удалось открыть файл в режиме записи"; в то время () { если (/ $ templateJobName /) { $ _ = ~ s/$ templateJobName/$ Projectname /; } , если (/ $ templatePathName /) { # $ _ = ~ s/$ templatePathName/$ PathName /; } печати JOBFILE $ _; } Клоса e TEMPLATEFILE; закрыть JOBFILE; –
user2189668