perl语言中数组初始化为空和undef的不同

在perl语言中,undef是一个常用的用法,但是不等于空,不等于数值0,它只是表示现在声明了这个变量,但是值还没有分配而已。

网上介绍undef的内容很多,这里我们只是比对一下对于一个数组,开始设置为undef或者空的不同。

问题发现的背景就不说了,我们简化为如下:

  1. 声明或者定义一个数组,免得后面使用时出现告警
  2. 根据业务条件,筛选满足条件的元素,放入到数组中
  3. 将数组连接成一个字符串,并以,为分隔符,供后面使用
my @array_test = undef;
#满足条件的元素,放入到数组中
push @array_test,'aa';
push @array_test,'bb';
push @array_test,'cc';
push @array_test,'dd';
#数组连接成一个字符串
my $tmp_string = join ',', @array_test;
print "string: $tmp_string====";

这个时候打印出来的结果为:

string: ,aa,bb,cc,dd====

如果将undef一行修改为如下形式:

my @array_test = ();

这个时候打印出来的结果为:

string: aa,bb,cc,dd====

注意,这个时候的打印最前面并没有分隔符号(这里是,), 这个才是我们期望的结果。

从这里使用中可以看出,undefine更多的想其它语言中对变量的一种声明,不能当做初始化来进行使用。

perl语言中数组初始化为空和undef的不同相关推荐

  1. c语言将数组初始化为1_C语言的数组初始化

    这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停反复.所以从今天開始,我会比較具体的纪录 ...

  2. c语言将数组初始化为1_c语言之数组初始化

    c语言之数组初始化 在c语言中,我们经常会有两种初始化的方式(一维数组): 方式一 int arr[20]; 这种方式是在c语言编译阶段对数组分配了固定的内存空间,但没有为c语言赋值,此时,对该数组进 ...

  3. c语言将数组初始化为1_C语言数组如何初始化

    1.一维数组的初始化 1.1 未初始化的一维数组一维数组的成员在没有初始化时,数组成员的值都是未知的,一旦访问到未知的值,可能导致不可预料的情况,严重时可以导致软件运行异常. 下面,将没有初始化的数组 ...

  4. c语言将数组初始化为1_C语言中数组的初始化

    在C语言中,数组的初始化有以下几种方式: 1. 定义的时候同时初始化: int array[10] = {1,2,3,4,5}; 2. 定义的时候不指定数组大小,由初始化的数组元素来确定大小: int ...

  5. c语言将数组初始化为1_C语言数组的初始化表示方法

    展开全部 在C语言中,数组的初始化有以下62616964757a686964616fe58685e5aeb931333366303066几种方式: 1.定义的时候同时初始化: int array[10 ...

  6. c语言如何让字符串变成空字符,C语言初始化字符串 c语言 如何将已赋值的字符串初始化为空?...

    C语言数组字符串初始化问题恋爱语录:能牵手的时候,请别肩并肩,能拥抱的时候,请别手牵手,能相爱的时候,请别说分开:拥有了爱情,请别去碰暧昧 字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是 ...

  7. c语言字符串二维数组初始化为0,c语言二维数组如何初始化为0

    c语言二维数组如何初始化 1 有两种方法 (1)在定义时可以直接赋值来初始化 (2)在定义后可以为其元素一个个来赋值 2 示例 123456789101112131415161718192021222 ...

  8. c语言变量定义数组,C语言中数组的定义和使用

    一.1.一维数组的定义: 类型说明符 数组名[常量表达式];    注意:常量表达式包括常量与符号常量,不能包含变量. 2.一维数组的引用: 数组名[下标]; 3.一维数组的初始化: a.在定义数组时 ...

  9. C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法

    选择法排序 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序.从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最 ...

  10. c语言中数组的定义与应用

    定义方法: 类型  变量名[元素个数]: 比如: int  a[6]; char b[24]; double c[3]; 注意,c语言中数组的元素个数是不能动态定义的(修改:在c99中已经可以了) 也 ...

最新文章

  1. 关于View测量中的onMeasure函数
  2. CTFshow 命令执行 web40
  3. Eclipse Code Review(代码审查)工具介绍
  4. java读取gradle属性,Spring Boot获取Gradle中包的属性
  5. 华为轮值董事长郭平2020全联接大会主题演讲:永远面向阳光,阴影甩在身后
  6. 7. GD32F103C8T6 定时器 pwm输出
  7. 雪城大学信息安全讲义 七、格式化字符串漏洞
  8. windows部署tomcat服务自动启动,同时解决服务无法启动的问题
  9. 戴尔BIOS 爆多个高危漏洞,影响Inspiron 等数百万系统
  10. 初探内联方式的 onload=doSomething()为何要加()?而js代码的 onload=doSomething 和 addEventListener 为何不加()?...
  11. 25.211 -- 物理层信道
  12. AIX操作系统使用心得
  13. 天翼宽带怎么开虚拟服务器,怎么设置天翼宽带猫的无线路由器
  14. 艺术范,技术芯——读达芬奇有感
  15. Unity--Configurable Joint——实战带你了解可配置关节
  16. 屏的接口类型种类以及接口定义分析
  17. Web项目中手机注册短信验证码实现的全流程及代码
  18. LeetCode解析------111. 二叉树的最小深度-深度优先搜索
  19. weblogic修改密码
  20. nginx打包文件以及解压

热门文章

  1. java exe 反编译工具_windows下java反编译工具
  2. iTerm2 + Fish 打造高效终端
  3. delphixe10linux,减小Delphi XE 以上版 编译出来的程序体积
  4. 【读书笔记《Android游戏编程之从零开始》】2.Hello,World!
  5. Vi编辑器编写Hello World程序
  6. ldpcMATLAB/ldpc的译码,matlab程序/LDPC编码的matlab实现/源码
  7. C语言小游戏------贪吃蛇----小白专用
  8. 2012年2月份第1周51Aspx源码发布详情
  9. GJB150.5A-2009军用装备实验室温度冲击环境试验
  10. 军用装备产品GJB150A淋雨试验检测机构