zoukankan      html  css  js  c++  java
  • perl智能匹配

    1.perl中~~为智能匹配,它能够智能地依据符号两側的操作数来确定操作。

    如要推断某个元素是否存在于数组中,不使用智能匹配,程序像这样:

    my $x=2;
    my @array=(1,2,3);
    my $flag=0;
    for (@array)
    {
    if($x==$_)
    {
    $flag=1;
    }
    }
    
    if($flag == 1){
    print "$x is in the array";
    }
    else
    {
    print "$x is not in the array";
    }
    

    使用智能匹配,程序像这样:

    my $x=2;
    my @array;
    if(@array~~$x)
    {
    print "$x is in the array";
    }
    else
    {
    print "$x is in the array";
    }
    

    再如查看哈希表中是否存在某个键值

    ‘hello’~~{hello=>1,world=>2}  结果为true

    2.智能匹配的优先级在perl的在线文档中,智能匹配会依照表格的顺序选择匹配,优先级从上到下逐渐减少。

         $a      $b        Type of Match Implied    Matching Cod
        ======  =====     =====================    =============
        Hash    Hash      hash keys identical      [sort keys %$a]~~[sort keys %$b]
        Hash    Array     hash slice existence     grep {exists $a->{$_}} @$b
        Hash    Regex     hash key grep            grep /$b/, keys %$a
        Hash    Any       hash entry existence     exists $a->{$b}
    
        Array   Array     arrays are identical[*]
        Array   Regex     array grep               grep /$b/, @$a
        Array   Num       array contains number    grep $_ == $b, @$a
        Array   Any       array contains string    grep $_ eq $b, @$a
    
        Any     undef     undefined                !defined $a
        Any     Regex     pattern match            $a =~ /$b/
        Code()  Code()    results are equal        $a->() eq $b->()
        Any     Code()    simple closure truth     $b->() # ignoring $a
        Num     numish[!] numeric equality         $a == $b
        Any     Str       string equality          $a eq $b
        Any     Num       numeric equality         $a == $b
    
        Any     Any       string equality          $a eq $b


查看全文
  • 相关阅读:
    spring整合freemarker 自定义标签
    curl 取不到第二个参数解决方法
    solr5.5教程-solr.home 配置
    solr5.5教程-schema.xml部分配置
    solr5.5教程-solrconfig.xml,加载schema.xml
    solr5.5教程-tomcat布署(2)
    solr5.5教程-tomcat布署
    jsp页面el表达式不起作用
    spring+hibernate--直接修改数据库,再通过hibernate查询数据不变
    13 hbase连接
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10818985.html
  • Copyright © 2011-2022 走看看