0

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.
    }
}
4

1 に答える 1

1

文字列にはおそらく空白が含まれています。chompなどを使用して削除するか、代わりに正規表現を使用できます。

試す:

if ($folder =~ /^(acc|bda)/) {
    # some code here
}
于 2013-11-15T10:05:55.830 に答える