我正在使用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]
块?
答案 0 :(得分:4)
添加/i
标志以使匹配不区分大小写:
[ qr/$quotedhostname/i => sub
您在开始和结束时也不需要.*
,它无论如何都会匹配(它们只会让它变得更慢)。