2009/2/25 cnhack TNT <[email protected]>:
> 用 eval 是正解 :-)
>

是啊,eval 是正解:

sub regfromvar
{
       my $str1="requestform";
       my $str2=$str1;
       my $parttern = "request(form)";
       my $replacement = '$1';
       print $str1,"\n";
       if($str1 =~ s/$parttern/eval $replacement/eigxm)
       {
                       print $str1,"\n";
       }

       print $str2,"\n";
       if($str2 =~ s/$parttern/$1/igxm)
       {
                       print $str2,"\n";
       }
}

regfromvar();

输出是期望的了:

requestform
form
requestform
form

不过如果 $replacement 来自外部的话,要小心注入哦。。。呵呵。。。

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复