perl用普通括号替换花括号

bru*_*lin 1 perl replace

我需要编写一个查看文件的脚本,并用普通括号替换任何花括号.到目前为止我有:

use strict;
use warnings;
open(INFILE,"<rscore") || die "Couldn't open rscore for reading!\n";
open(OUTFILE,">rscore.new") || die "Couldn't open rscore.new for writing!\n";
while(<INFILE>){
  $_ =~ s/{/(/gi; #g for every occurrence, i for case-insensitive
  print OUTFILE $_;
}
close INFILE;
close OUTFILE;
rename("rscore.new","rscore") || die "Couldn't rename the new file!\n"; 
Run Code Online (Sandbox Code Playgroud)

并收到以下错误:

syntax error near line 10 near insensitive print.
Run Code Online (Sandbox Code Playgroud)

这可能是愚蠢的事情.此外,如果有一个更有效的方式这样做(我确信有),我会接受建议.

bob*_*ogo 5

这是一个perl单行.

$ perl -lpe 'tr |{}|()|' <infile >outfile
Run Code Online (Sandbox Code Playgroud)

  • 他甚至可能不需要perl脚本,而是直接使用`tr`命令:`tr'{}''()'infile> outfile` (2认同)