如何在Perl的qr //中小写插值字符串?

时间:2014-08-01 14:27:39

标签: perl expect tolower toupper

我正在使用Perl Expect模块进行SSH连接。我已经有一个使用这样的子函数的模块:

$exp->spawn("ssh -o ConnectTimeout=$connectTimeout $user\@$ip") or die ("unable to spawn \n");
@obj=$exp->expect( $commandTimeout,
[ qr/.*$quotedhostname.*/ => sub
        {
        print "connected \n";
        $exp->send("term length 0", "\n");
        $exp->expect($commandTimeout2,);
        &executeCommands();
        }
],

但我的$ quotedhostname是UPPERCASE。当它也是LOWERCASE时我需要抓住它。 有没有办法做这样的事情:

[ qr/.*$quotedhostname.*/ OR /.*$lowercasequotedhostname.*/ => sub

或者我应该只是添加另一个[qr]块?

1 个答案:

答案 0 :(得分:4)

添加/i标志以使匹配不区分大小写:

[ qr/$quotedhostname/i => sub

您在开始和结束时也不需要.*,它无论如何都会匹配(它们只会让它变得更慢)。