perl语言中数组初始化为空和undef的不同
perl语言中数组初始化为空和undef的不同
在perl语言中,undef是一个常用的用法,但是不等于空,不等于数值0,它只是表示现在声明了这个变量,但是值还没有分配而已。
网上介绍undef的内容很多,这里我们只是比对一下对于一个数组,开始设置为undef或者空的不同。
问题发现的背景就不说了,我们简化为如下:
- 声明或者定义一个数组,免得后面使用时出现告警
- 根据业务条件,筛选满足条件的元素,放入到数组中
- 将数组连接成一个字符串,并以,为分隔符,供后面使用
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的不同相关推荐
- c语言将数组初始化为1_C语言的数组初始化
这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停反复.所以从今天開始,我会比較具体的纪录 ...
- c语言将数组初始化为1_c语言之数组初始化
c语言之数组初始化 在c语言中,我们经常会有两种初始化的方式(一维数组): 方式一 int arr[20]; 这种方式是在c语言编译阶段对数组分配了固定的内存空间,但没有为c语言赋值,此时,对该数组进 ...
- c语言将数组初始化为1_C语言数组如何初始化
1.一维数组的初始化 1.1 未初始化的一维数组一维数组的成员在没有初始化时,数组成员的值都是未知的,一旦访问到未知的值,可能导致不可预料的情况,严重时可以导致软件运行异常. 下面,将没有初始化的数组 ...
- c语言将数组初始化为1_C语言中数组的初始化
在C语言中,数组的初始化有以下几种方式: 1. 定义的时候同时初始化: int array[10] = {1,2,3,4,5}; 2. 定义的时候不指定数组大小,由初始化的数组元素来确定大小: int ...
- c语言将数组初始化为1_C语言数组的初始化表示方法
展开全部 在C语言中,数组的初始化有以下62616964757a686964616fe58685e5aeb931333366303066几种方式: 1.定义的时候同时初始化: int array[10 ...
- c语言如何让字符串变成空字符,C语言初始化字符串 c语言 如何将已赋值的字符串初始化为空?...
C语言数组字符串初始化问题恋爱语录:能牵手的时候,请别肩并肩,能拥抱的时候,请别手牵手,能相爱的时候,请别说分开:拥有了爱情,请别去碰暧昧 字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是 ...
- c语言字符串二维数组初始化为0,c语言二维数组如何初始化为0
c语言二维数组如何初始化 1 有两种方法 (1)在定义时可以直接赋值来初始化 (2)在定义后可以为其元素一个个来赋值 2 示例 123456789101112131415161718192021222 ...
- c语言变量定义数组,C语言中数组的定义和使用
一.1.一维数组的定义: 类型说明符 数组名[常量表达式]; 注意:常量表达式包括常量与符号常量,不能包含变量. 2.一维数组的引用: 数组名[下标]; 3.一维数组的初始化: a.在定义数组时 ...
- C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法
选择法排序 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序.从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最 ...
- c语言中数组的定义与应用
定义方法: 类型 变量名[元素个数]: 比如: int a[6]; char b[24]; double c[3]; 注意,c语言中数组的元素个数是不能动态定义的(修改:在c99中已经可以了) 也 ...
最新文章
- 关于View测量中的onMeasure函数
- CTFshow 命令执行 web40
- Eclipse Code Review(代码审查)工具介绍
- java读取gradle属性,Spring Boot获取Gradle中包的属性
- 华为轮值董事长郭平2020全联接大会主题演讲:永远面向阳光,阴影甩在身后
- 7. GD32F103C8T6 定时器 pwm输出
- 雪城大学信息安全讲义 七、格式化字符串漏洞
- windows部署tomcat服务自动启动,同时解决服务无法启动的问题
- 戴尔BIOS 爆多个高危漏洞,影响Inspiron 等数百万系统
- 初探内联方式的 onload=doSomething()为何要加()?而js代码的 onload=doSomething 和 addEventListener 为何不加()?...
- 25.211 -- 物理层信道
- AIX操作系统使用心得
- 天翼宽带怎么开虚拟服务器,怎么设置天翼宽带猫的无线路由器
- 艺术范,技术芯——读达芬奇有感
- Unity--Configurable Joint——实战带你了解可配置关节
- 屏的接口类型种类以及接口定义分析
- Web项目中手机注册短信验证码实现的全流程及代码
- LeetCode解析------111. 二叉树的最小深度-深度优先搜索
- weblogic修改密码
- nginx打包文件以及解压
热门文章
- java exe 反编译工具_windows下java反编译工具
- iTerm2 + Fish 打造高效终端
- delphixe10linux,减小Delphi XE 以上版 编译出来的程序体积
- 【读书笔记《Android游戏编程之从零开始》】2.Hello,World!
- Vi编辑器编写Hello World程序
- ldpcMATLAB/ldpc的译码,matlab程序/LDPC编码的matlab实现/源码
- C语言小游戏------贪吃蛇----小白专用
- 2012年2月份第1周51Aspx源码发布详情
- GJB150.5A-2009军用装备实验室温度冲击环境试验
- 军用装备产品GJB150A淋雨试验检测机构