【发布时间】:2021-03-04 13:06:06
【问题描述】:
我编写了一个 perl 脚本,用一些其他文本替换文件中的文本,保持搜索文本的某些部分不变。
但是,我的脚本没有按预期工作,我在 Stackoverflow 中看到了类似的问题并遵循了建议,但脚本仍然没有给出预期的输出。
请参阅我希望在文件中替换的以下文本(突出显示)以及编写的相应脚本
在文件中,我想用“150”替换十进制值。 任何帮助将不胜感激。感谢您的宝贵时间!
#!usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 my $filename = 'input_file.txt';
7
8 my $data = read_file($filename);
9 $data =~ s/(g_clk.*-multiply_by\s\+)\d\+/$1 150/ge;
10 print "$data\n";
11 write_file($filename, $data);
12 exit;
13
14 sub read_file {
15 my ($filename) = @_;
16
17 open my $in, '<:encoding(UTF-8)', $filename or die "Could not open '$filename' for reading $!";
18 local $/ = undef;
19 my $all = <$in>;
20 close $in;
21
22 return $all;
23 }
24
25 sub write_file {
26 my ($filename, $content) = @_;
27
28 open my $out, '>:encoding(UTF-8)', $filename or die "Could not open '$filename' for writing $!";;
29 print $out $content;
30 close $out;
31
32 return;
33 }
【问题讨论】:
-
提供可复制粘贴的代码和输入/输出文本示例要好得多。作为对试图帮助您的人的一种礼貌,让他们不必输入您想要修复的内容的时间。