区别于;eq";及=~/^字符串\b/i";在Perl中

区别于;eq";及=~/^字符串\b/i";在Perl中,perl,Perl,在Perl中比较字符串值时,以下两种方法有什么区别 if ($delta eq "name") Vs 我试图比较两个字符串值,其中“name”从数组索引中读取 谢谢第一个不是正则表达式,它区分大小写,只是尝试按原样匹配完整字符串 第二个是正则表达式,ans不区分大小写,只能匹配字符串的第一个字。eq是字符串相等。因此,它测试左侧的字符串与右侧的字符串是否匹配 “=~”是绑定运算符。它测试左侧AGS上的字符串和右侧的正则表达式模式 更多信息可在perldoc中找到,包括以下链接和 每种方法的简短

在Perl中比较字符串值时,以下两种方法有什么区别

if ($delta eq "name")
Vs

我试图比较两个字符串值,其中“name”从数组索引中读取


谢谢

第一个不是正则表达式,它区分大小写,只是尝试按原样匹配完整字符串


第二个是正则表达式,ans不区分大小写,只能匹配字符串的第一个字。

eq是字符串相等。因此,它测试左侧的字符串与右侧的字符串是否匹配

“=~”是绑定运算符。它测试左侧AGS上的字符串和右侧的正则表达式模式

更多信息可在perldoc中找到,包括以下链接和

每种方法的简短总结

绑定运算符

二进制“=~”将标量表达式绑定到模式匹配。默认情况下,某些操作会搜索或修改字符串$。此运算符使此类操作在其他字符串上工作。正确的参数是搜索模式、替换或音译。左参数是应该搜索、替换或音译的参数,而不是默认的$\ux

相等运算符

如果左参数与右参数在字符串上相等,则二进制“eq”返回true

把这放到上下文中去。只有当$delta的值仅为“name”(必须全部小写)时,才会匹配您的第一条语句。第二个示例,如果$delta if的值以“name”开头,则无论大小写如何,都将匹配

如果$delta是“name”-这将在语句1和语句2中匹配

如果$delta是“NAME”-它在语句1中不匹配,但在语句2中匹配


如果$delta是“此人的姓名”-这在语句1中不匹配,但在语句2中匹配

只有当变量$delta正好包含secuence
name
时,第一个才匹配


第二种更为宽容。它只需要字符串开头的secuence
name
,后跟单词边界即可成功。它也不关心顺序是
name
还是
name
name
等等。

在字符串中不要只使用英语。参见两个示例:
perl-e'printq(dif)if q(∂ƒ)eq(∂ƒ)
perl-e'print q(dif)if q(∂ƒ) =~ /^∂ƒ\b/i'
if ($delta =~ /^name\b/i)