Perl两个相同的字符串比较不相等

时间:2018-11-20 17:16:17

标签: perl string-comparison

这是我的代码:

    my $self = shift;
    my $h    = shift;

    print "$h\n";

    my @headers = split /,/, $h;

    foreach my $el (@{$expected}) {
            my $t = shift @headers;
            chomp ($t);
            chomp ($el);
            print Dumper($el cmp $t, $el, $t);
            print "test: \'$el\' eq \'$t\' ";
            unless ($el eq $t) {
                    print "not ok $el ne $t\n";
                    return 0;
            } else {
                    print "ok\n";
            }
    }
    return 1;

在我的第一个单元测试中,我将一个字符串传递给$ h,该字符串与$ expected相匹配。 然后进行单元测试,以确保在传递不匹配的字符串时函数失败。这两个测试的行为符合预期。

  

服务器,Jira项目,问题类型,摘要,描述,受让人,标签,史诗链接

     

$ VAR1 = 0;

     

$ VAR2 ='服务器';

     

$ VAR3 ='服务器';

     

测试:“服务器”等于“服务器”正常

当我从CSV文件中插入该行并将其传递给此函数时,我会得到不同的响应。

  

服务器,Jira项目,问题类型,摘要,描述,受让人,标签,史诗链接

     

$ VAR1 = -1;

     

$ VAR2 ='服务器';

     

$ VAR3 ='服务器';

     

测试:“服务器”等于“服务器”不好,服务器和服务器

某种程度上的比较意味着预期值比被测试的值要小。我立即想到要测试的内容一定要有前导或结尾字符。但是,打印和转储似乎无法确认这一点(除非我遗漏了某些内容)。排骨简直是绝望。

我想念什么?

1 个答案:

答案 0 :(得分:4)

首先感谢@hobbs提供的$ Data :: Dumper :: Useqq = 1;建议。显而易见,有些主角我不知道如何检测。

  

$ VAR1 = -1;

     

$ VAR2 =“服务器”;

     

$ VAR3 =“ \ 357 \ 273 \ 277Server”;

我正在读取的CSV文件包含Byte Ordermarking信息。

我将它们剥离。谢谢大家让我再次前进。