gpt4 book ai didi

字符串匹配

转载 作者:行者123 更新时间:2023-12-02 11:30:25 25 4
gpt4 key购买 nike

我写了一段代码:

my $str = 'http://www.ykt.ru/cgi-bin/go?http://ya.ru';
my $str2 = 'http://ya.ru';
if ($str == $str2)
{
print "str = str2";
}
else
{
print "str != str2";
}

它告诉我 str = str2。但这是假的。仅当 $str = 'http://ya.ru';这将是真的。怎么了?

最佳答案

您应该使用 eq 运算符比较字符串,如下所示:

if ($str eq $str2) { ... }

这实际上是一个非常方便的助记规则:字母代表字符串,非字母代表数字(因为每个符号比较运算符都有一个“冗长”的替代方案):

numbers | strings
-----------------
== | eq
!= | ne
< | lt
> | gt
<= | le
>= | ge
<=> | cmp

否则将使用数字比较:两个操作数都将转换为数字,并比较此转换的结果。由于两个字符串都从非数字符号开始(即使在修剪之后),它实际上变为 (0 == 0)

请注意,如果您的脚本以...开始,您实际上就会得到这个答案

use warnings;

... pragma,就像我所做的那样 here :

Argument "http://ya.ru" isn't numeric in numeric eq (==) at t.pl line 5. 
Argument "http://www.ykt.ru/cgi-bin/go?http://ya.ru" isn't numeric in numeric eq (==) at t.pl line 5.

关于字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com