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 

  • 相关阅读:
    BUAA OO Unit3 Summary——万物即可形式化
    BUAA OO Unit2 Summary
    BUAA OO Unit1 Summary
    [机器学习笔记(三)]保存加载模型的几种方式
    交互式多媒体图书平台的设计
    【tips】带公式的Markdown转pdf
    【学习笔记】码农的自我修养之必备技能
    【Callback接口初探】工程化编程实战Callback接口学习笔记
    在linux下配置VSCode的开发环境
    网络知识水平与网络编程技能水平测试
  • 原文地址:https://www.cnblogs.com/xiaopengren/p/3431211.html
Copyright © 2011-2022 走看看