zoukankan      html  css  js  c++  java
  • Perl 数字与字符串运算符之区别

    在Perl中,字符串比较和数字比较是由不同的运算符来完成的:

    • 数字比较运算符: <, >, <=, >=, ==, !=
    • 字符串比较运算符: lt, gt, le, ge, eq, ne
    • cmp: 比较字符串,返回 -1, 0 或者 1。
    • <=>: 比较数字,返回 -1, 0 或者 1。
    • =~:用正则表达式来匹配,匹配的话返回True。
    • !~:和 =~ 相反,不匹配返回True。
    • 例子

    #!/usr/bin/env perl  

    use strict;  

    use warnings;  

       

    my $num1 = 1;  

    my $num2 = 1.0;  

    my $two_numbers = "$num1 and $num2";  

       

    my $str1 = "1abc";  

    my $str2 = "1xyz";  

    my $two_strings = "$str1 and $str2";  

       

    print "Compare two numbers using != ";  

    if ($num1 != $num2) {  

        print "$two_numbers are not equal ";  

    } else {  

        print "$two_numbers are equal ";  

    }  

       

    print "Compare two strings using !=: get wrong result ";  

    if ($str1 != $str2) {  

        print "$two_strings are not equal ";  

    } else {  

        print "$two_strings are equal ";  

    }  

       

    print "Compare two numbers using ne ";  

    if ($num1 ne $num2) {  

        print "$two_numbers are not equal ";  

    } else {  

        print "$two_numbers are equal ";  

    }  

       

    print "Compare two strings using ne ";  

    if ($str1 ne $str2) {  

        print "$two_strings are not equal ";  

    } else {  

        print "$two_strings are equal ";  


     

    结果:

    Compare two numbers using !=  

    1 and 1 are equal  

    Compare two strings using !=: get wrong result  

    Argument "1xyz" isn't numeric in numeric ne (!=) at compare_operators.pl line 23.  

    Argument "1abc" isn't numeric in numeric ne (!=) at compare_operators.pl line 23.  

    1abc and 1xyz are equal  

    Compare two numbers using ne  

    1 and 1 are equal  

    Compare two strings using ne  

    1abc and 1xyz are not equal 

  • 相关阅读:
    扫描线与悬线
    随机搜索与模拟退火
    树的直径相关
    分数规划及斜率优化
    数学-剩余系
    后缀数据结构
    AC自动机和KMP
    生命游戏和随机数之间某种不可言说的秘密
    转移了
    BZOJ 1710: [Usaco2007 Open]Cheappal 廉价回文
  • 原文地址:https://www.cnblogs.com/xiaopengren/p/3431211.html
Copyright © 2011-2022 走看看