Perl将两个相同的字符串比较为不相等
这是我的密码:Perl将两个相同的字符串比较为不相等,perl,string-comparison,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); p
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项目、问题类型、摘要、描述、受让人、标签、Epic链接
$VAR1=0
$VAR2='Server'
$VAR3='Server'
测试:“服务器”eq“服务器”正常
当我从CSV文件中提取行并将其传递给此函数时,我会得到不同的响应
服务器、Jira项目、问题类型、摘要、描述、受让人、标签、Epic链接
$VAR1=-1
$VAR2='Server'
$VAR3='Server'
测试:“服务器”eq“服务器”不正常服务器网元服务器
比较在某种程度上意味着期望值比测试值要小。我立刻想到,在测试的内容上,必须有一个前导或尾随字符。然而,打印和转储似乎并不能证实这一点(除非我遗漏了什么)。这些大杂烩完全是出于绝望
我遗漏了什么?首先感谢@hobbs提供$Data::Dumper::Useqq=1;建议。很明显,有一些主角我不知道如何去发现 $VAR1=-1 $VAR2=“服务器” $VAR3=“\357\273\277Server” 我正在读取的CSV文件包含信息
我要把它们脱掉。谢谢大家让我再次出发。你能设置
$Data::Dumper::Useqq=1在调用Dumper
之前,在代码中添加code>,并提供更新的输出?很可能在从CSV读取的某些数据末尾有换行符(CR和/或LF)。在这种情况下,去掉最后一项末尾的所有空格。@hobbs,很好的建议!我有一些前导字符在那里…如果您使用读取CSV数据(强烈建议),它将自动处理在标题行开始的BOM。