【发布时间】:2015-01-09 10:03:33
【问题描述】:
在下面的脚本中,我使用了存储在变量中的替换模式。 我似乎无法在我的最终结果中得到一个反斜杠。我得到一个或两个。 它与 eval 语句有关 任何人都可以给我关于这方面的见解。
test.pl:
use Data::Dumper;
@arr = ("a", "b", "c");
$re = '$1 \|';
@arr = map { $_ =~ s/($_)/eval qq{"$re"}/e && $_ } @arr;
print Dumper(\@arr);
@arr = ("a", "b", "c");
$re = '$1 \\|';
@arr = map { $_ =~ s/($_)/eval qq{"$re"}/e && $_ } @arr;
print Dumper(\@arr);
@arr = ("a", "b", "c");
$re = '$1 \\\|';
@arr = map { $_ =~ s/($_)/eval qq{"$re"}/e && $_ } @arr;
print Dumper(\@arr);
$ test.pl
$VAR1 = [
'a |',
'b |',
'c |'
];
$VAR1 = [
'a |',
'b |',
'c |'
];
$VAR1 = [
'a \\|',
'b \\|',
'c \\|'
];
【问题讨论】: