Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当前的perl表达式是什么意思_Perl_Expression - Fatal编程技术网

当前的perl表达式是什么意思

当前的perl表达式是什么意思,perl,expression,Perl,Expression,我在perl中遇到了这个表达式: if($temp !~ /^\.\n$/) 我不熟悉perl中的表达式,我想知道它的意思 /PAT/,是m/PAT/的缩写,是匹配运算符。它检查绑定值是否匹配正则表达式模式PAT =~是绑定运算符。它可用于指定match运算符检查是否与正则表达式模式匹配的值,因此$temp=~/PAT/检查$temp是否与模式PAT匹配 EXPR1!~EXPR1与相同!(EXPR1=~EXPR1),所以$temp!~/PAT/检查$temp是否与模式PAT不匹配 有问题的模式

我在perl中遇到了这个表达式:

if($temp !~ /^\.\n$/)

我不熟悉perl中的表达式,我想知道它的意思

/PAT/
,是
m/PAT/
的缩写,是匹配运算符。它检查绑定值是否匹配正则表达式模式
PAT

=~
是绑定运算符。它可用于指定match运算符检查是否与正则表达式模式匹配的值,因此
$temp=~/PAT/
检查
$temp
是否与模式
PAT
匹配

EXPR1!~EXPR1与
相同!(EXPR1=~EXPR1)
,所以
$temp!~/PAT/
检查
$temp
是否与模式
PAT
不匹配

有问题的模式检查值是否由除换行符之外的单个字符和一个或两个换行符组成

因此,如果
$temp
的值不是由一个字符组成,而是由一个或两个换行符后跟的换行符组成,则表达式为真

比如说,

  • “a\n”
    匹配。如果不输入
    ,则输入
    的正文
  • “a\n\n”
    匹配(尽管可能是无意中匹配)。如果不输入
    ,则输入
    的正文
  • “a”
    不匹配。如果输入
    ,则输入
    的正文
  • “\n”
    不匹配。如果输入
    ,则输入
    的正文
  • “\n\n”
    不匹配。如果输入
    ,则输入
    的正文
  • “ab\n”
    不匹配。如果输入
    ,则输入
    的正文

很高兴知道!但是上面的表达式具体是什么意思呢?如果
$temp
的值不是由一个字符组成,而是由一个或两个换行后的换行符组成,则将输入
if
的主体。我的坏。。在这种情况下,点与
a
匹配。。(但除非给出了
s
修饰符,否则它不能匹配换行符…,但您的答案正确地抓住了这种情况)