如何比较perl中的字符串?

时间:2012-06-19 06:31:37

标签: perl selenium-rc

use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;
use Text::Table; 
our ($a,$critical);

print "Enter text:";
$a = <>;
print "Enter critical value:";
$critical = <>;
print $a;
print $critical;
|
|
|
|
|
$sel->click_ok("//div[\@class='x-combo-list-inner']/div[8]");
my $v7 = $sel->get_text("//div[\@class='x-combo-list-inner']/div[8]");
print($v7 . "\n");
print($critical . "\n");
if ($critical eq $v7)
{
perform operations
}
else
{
don't perform operation
}

我从cmd进入的临界值'Last 45 Days'&amp;从div [8]&amp;存储在上述代码中的v7也是('Last 45 Days')。但是当它遇到if循环时,它不会执行操作。有没有其他方法可以比较这些字符串?

2 个答案:

答案 0 :(得分:2)

您可能在$ critical上附加了换行符。尝试用chomp($ critical);

删除它

答案 1 :(得分:0)

正如Kludas所说,你很可能在$critical结尾处有换行符。您当然没有显示删除它的代码,get_text返回的字符串不太可能以换行符结尾。

我建议您使用Data::Dump(注意 NOT Data::Dumper)来显示您的字符串。一旦你安装了模块,这只是一个问题

use Data::Dump;

dd $critical;
dd $v7;

并且任何非printables将显示为适当的可见转义码。