perl删除文件_Perl小知识语法重点和数据类型
Hello,大家好,我是小舍,后续有我为大家介绍 Perl 编程相关知识,以及Perl在数字IC验证中的应用。Perl的全称是Practical Extractionand Report Language,一般翻译为"实用报表提取语言",可见Perl的优势是文本处理。好了,废话不多说,直接来干货吧。
第一个perl程序
下面来看看第一个perl程序 -- “Hello World”依旧,文件名为hello.pl。
#!/usr/bin/perl print"Hello, World!\n"; |
敲黑板
为了增加文件的可识别度,一般将p或者pl作为perl脚本名的后缀。
Perl有2种运行方式,一种是交互式,另外一种是脚本。交互式是在命令行中直接执行perl代码,语法如下:
perl-e |
脚本方式:perl name.pl 或者./name.pl
代码中 /usr/bin/perl是 perl 解释器的路径。在执行该脚本前要先确保文件有可执行权限,我们可以先将文件权限修改为 0755 :
$ chmod 0755 hello.pl $ ./hello.pl Hello, world # 输出结果 |
因为Perl语法的随意性,导致程序难以维护,建议的解决方案是在程序中使用use strict;以及use warnings;,并统一代码风格,使用库,而不是自己使用"硬编码"。
在perl解释器路径的后面,可以加上-w,可以显示程序中出现的一些警告,以便于修改或者debug程序,例如:
#!/usr/bin/perl -w |
Perl语法重点
Perl语句每条以封号(;)结束;
除了Perl解释器语句外,以#字符开头的语句是注释;多行注释,以=str(字符或者单词)开头和=cut(必须是=cut)结束;
Perl 中输出字符串可以使用单引号或双引号,二者区别是:双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出;
Perl中的here文档:使用=<<标识符; .… 标识符 将一个单行或者多行的内容赋值给一个变量,例如;
#here doc $here_doc=<; This is a here document, using double quote ! EOP |
Perl数据类型
Perl有三种基本的数据类型:标量($),数组(@)和哈希(%)。
标量
以$开头的变量,表示标量:
$age= 20; $name="Zhang"; $salary= 10204; |
数组
以@开头的变量,是数组变量,索引从0开始,例如:@arr=(1,2,3);
此外,Perl还提供了按序列输出的数组形式,例如:@array_num=(1..10); 或者@array_str=(a..z);
敲黑板
要访问数组的变量,可以使用美元符号($)+变量名[下标],并指定下标来访问,实例如下所示:
@ages=(25, 30, 40); @names=("google","runoob","taobao"); @copy_name=@names; $array_size=@array; #数组元素个数,值为5 $array_max_size=$#array;#数组元素下标最大值,值为4 print"@copy_name \n"; print"The size of names = $name_size \n"; print"\$hits[0] = $hits[0]\n"; print"\$hits[1] = $hits[1]\n"; print"\$hits[2] = $hits[2]\n"; print"\$names[0] = $names[0]\n"; print"\$names[1] = $names[1]\n"; print"\$names[2] = $names[2]\n"; print"array_str[2]= $array_str[-1] \n"; #从反向获取数组元素 |
Perl中,可以根据变量上下文来决定变量的类型,上下文是由等号的左边变量类型决定的。例如上述code中,语句 $name_size=@names 执行的结果就是返回数组@names的元素个数。
访问数组元素时,下标为正数,表示从正向开始,0表示第一个数组元素,1表示第2个数组元素。下标为负数,表示从反向开始。
数组长度返回的是数组物理大小,而不是元素的个数。
可以取出数组部分元素作为一个新数组,例如:@sites2 = @sites[3,4,5];
可以使用函数来添加和删除数组元素:
#push @ARRAY, LIST -- 将列表的值放到数组的末尾 push(@names,"guomei"); push(@names,"pingduoduo","tianmao"); print"@names \n"; #pop @ARRARY -- 删除数组的最后一个元素 pop@names; #shift @ARRAY -- 弹出数组第一个值,并返回该元素 $f_ele=shift@names; print"@names\n"; print"The firsr element $f_ele\n"; #unshift @ARRAY, LIST -- 将列表放在数组前面,并返回新数组的元素个数 $num_ele=unshift(@names,"good","bad"); print"@names\n"; print"The number of element $num_ele\n"; |
此外,可以使用函数split函数,将字符按照一定的规则切分成数组,也可以使用函数join将数组按照一定的规则组合成一个数组。
哈希
Perl中,以%开头的变量,是哈希类型。Perl中的哈希变量是一个键值对(key/value)的集合,相当于SystemVerilog中的关联数组。如果要访问哈希值,可以使用${key}格式来访问:
%data=('google', 45,'runoob', 30,'taobao', 40); print"\$data{'google'} = $data{'google'}\n"; print"\$data{'runoob'} = $data{'runoob'}\n"; print"\$data{'taobao'} = $data{'taobao'}\n"; |
敲黑板
可以通过函数keys读取哈希所有的键,然后用一个数组来接收哈希的键,形成一个数组;
同理,可以通过函数values来读取哈希的所有值,存放在一个数组中。
#!/usr/bin/perl %data = ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com'); @key_arr = keys%data; @value_arr = values%data; print"$key_arr[0]\n"; print"$value_arr[1]\n"; |
函数exists来判断key是否存在,例如:exists($data{'facebook'};
对于哈希,添加新的键值对时,可以采用$hash_name{‘key’}=’value’的方式;但是删除哈希时,需要使用delete函数,语法delete $hash_name{‘key’}。
今天关于Perl的基础知识,就介绍到这里,下期见。拜了个拜
END
点个“在看”表示朕 已阅
perl删除文件_Perl小知识语法重点和数据类型相关推荐
- msbuild 语法_用于删除文件的MSBuild Task语法
用于删除文件的MSBuild Task语法 我正在尝试编写一个MSBuild任务,该任务将从生产构建脚本中bin文件夹中的Obj目录和PDB删除,并且似乎无法使其正常运行. 有没有人提供执行此操作或类 ...
- bat 删除文件_利用电脑文本文档建立一个简单方便的删除文件的小程序
删除文不需要的文件或者资料,是日常工作中必定会遇到了. 各种的杀毒软件或者防护软件都具备删除文件的功能,例如360.腾讯电脑管家.这些操作起来其实也不是太麻烦! 不过呢!今天来和大家分享一个更简单的方 ...
- syswow64删除文件_syswow64,小编教你syswow64是什么文件夹
有很多用户对有些文件夹很好奇,比如在C盘中有一个名为syswow64的文件夹,该文件夹占了不少的空间了,为此,用户提出syswow64是什么文件夹,可不可以删除的疑问,下面,小编给大伙聊聊syswow ...
- 不小心删除文件夹怎么恢复,怎么恢复误删文件?
不小心删除文件夹怎么恢复?居家办公作息不稳定,导致我最近上班的时候总是犯错,比如保存或者查看某些本周要用的文件时,一个不留神就将其删除了.这些文件数据都是经过一定时间的整理才做出来的,重新做的话很浪费 ...
- linux下的删除文件命令,Linux下删除文件命令
在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家. Linux下删 ...
- u盘复制文件第二台计算机无文件夹,电脑上的文件不能复制到U盘,U盘不能创建文件夹及删除文件...
电脑上的文件不能复制到U盘,U盘不能创建文件夹及删除文件 计算机基础知识 知识宝库 2013-8-3 6606 0评论 最好查一下电脑被设置的什么保护,该怎样解开 你确认一下, ...
- Linux下删除文件命令
在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家. Linux下删 ...
- linux-shell命令之rm(remove)【删除文件或目录】
功能说明:删除文件或目录. 语法介绍:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r ...
- linux删除文件里夹命令,Linux删除文件(夹)、创建文件(夹)命令是什么
Linux删除文件(夹).创建文件(夹)命令是什么?在Linux系统中删除文件,很多用户都惯用rmdir命令,因为Linux没有回收站功能,所以笔者建议用户使用rm-rf命令,具体用法可以按照以下命令 ...
最新文章
- DeFi 史上最大盗窃案:一个漏洞盗走价值 6 亿美元资产?现已归还近一半
- ERP项目实施的原则
- Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划
- Git分支操作命令:删除与恢复
- [BZOJ4033][HAOI2015]树上染色(树形DP)
- 数据结构(java语言描述)顺序栈的使用
- Springboot(2.0.0.RELEASE)+spark(2.1.0)框架整合到jar包成功发布(原创)!!!
- Zipkin-1.19.0学习系列13: Brave-Web-Filter的filter机制分析
- Java学习之JDBC(1)
- 5款好用的项目管理软件推荐
- 修改scrollbars的样式
- 复旦计算机对口,2019年长宁区公办初中划片电脑派位对口入学方式
- 数理逻辑习题集(3)
- 解决vue项目在浏览器中打开后,#后面的链接被截取的问题
- 将距离度量学习应用于购物问题
- 12306验证图片集合。
- android中录音断点播放,Android实现暂停--继续录音(AudioRecord)
- 【C语言】scanf语句里关于%c的问题
- 基于CC2530的zIgbee传感器无线数据采集系统开发(部分关键源码)
- 无向图、深度优先搜索(无向图)、广度优先搜索(无向图)、无向图路径查找(基于深度优先搜索)