如果条件在perl中的foreach循环内不匹配

时间:2013-11-15 10:00:33

标签: perl

我正在尝试将一个字符串与foreach循环中的if语句匹配,但它不匹配,尽管我在foreach循环中的if语句之前得到了相同的字符串。请帮忙。

use Net::Telnet;
$ip='xx.xxx.xx.xx';
$ip_port='10002';
$port  = new Net::Telnet->new( Host=>$ip,Port=>$ip_port,Dump_log=> "dump.log");

my @folder= $port->cmd("ls");
sleep(2);

$folders=@folder;
print "Number of folders are:$folders\n";

foreach my $folder(@folder)
{
        print "Folder before if is:$folder\n";
        if(($folder eq "acc") || ($folder eq "bda"))
    {

       # some code here.
    }
}

1 个答案:

答案 0 :(得分:1)

您的字符串可能包含空格。您可以使用 chomp 之类的东西将其删除,或者使用正则表达式。

尝试:

if ($folder =~ /^(acc|bda)/) {
    # some code here
}