我有一个奇怪的问题,即在s///前面的模式匹配之后,susbtitute运算符不起作用.例如
use strict;
use warnings;
my $var = "var";
$var =~ s||/|g;
print "$var\n";
Run Code Online (Sandbox Code Playgroud)
输出是: /v/a/r/
但在这种情况下
use strict;
use warnings;
my $a = "test";
if ($a =~ /te/) {
my $var = "var";
$var =~ s||/|g;
print "$var\n";
}
Run Code Online (Sandbox Code Playgroud)
输出是:var,它应该与前一个结果相同.
这里发生了什么?我该如何解决?
我找到了非正常运行的非字母数字perl代码!代码的开头:
eval eval '"'.
('!'^'+').'#'.('`'^'!').('['^'.').('['^'/').('`'|'(').('`'|'/').('['^')').':'.('{'^'/').('['^"\,").(
'`'|'%').('`'|'.').('['^'/').('['^'"').('`'^'/').('`'|'.').('`'|'%').('!'^'+').'#'.('`'^'$').(('`')|
'!').('['^'/').('`'|'%').':'.('`'^'!').('['^'.').('`'|"'").('['^'.').('['^'(').('['^'/').('{'^'[')
Run Code Online (Sandbox Code Playgroud)
和这里的在引擎收录的文件.那怎么会发生:D
perl ×2