perl 绑定操作符=~与eq的区别

对字符串进行拆分操作形成新的数组时,无论怎么也判断不到undef,最终是操作符用错,脚本如下:

#! /user/bin/perl
  use strict;

  my $temp = ("aaa,bbb,ccc,ddd,,eee");
  my @temp_array = split /,/,$temp;
  print "@temp_array\n";
  print "$#temp_array\n";

  foreach my $temp_a (@temp_array){
    if($temp_a =~ /aaa/){
      print "this is string aaa\n";
     }
    elsif($temp_a =~ /\s+/){
      print "this is blank space\n";
     }
    else{
      print "$temp_a\n";      
     }
  };

依次输出:

aaa bbb ccc ddd  eee

4

this is string aaa

this is blank space

this is blank space

this is blank space

this is blank space

this is blank space

如果把foreach里面的elsif里的绑定操作符换为eq,则会依次输出:

aaa bbb ccc ddd  eee

4

this is string aaa

bbb

ccc

ddd

this is blank space

eee

结论:

字符串之间的匹配最好用绑定操作符=~

字符串和undef之间的匹配最好用eq

(以上仅个人理解,仅供参考)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值