perl删除文件_Perl小知识语法重点和数据类型

1d48d0a15ada14d2ebece7b19c6e02a6.gif

Hello,大家好,我是小舍,后续有我为大家介绍 Perl 编程相关知识,以及Perl在数字IC验证中的应用。 Perl的全称是Practical Extractionand Report Language,一般翻译为"实用报表提取语言",可见Perl的优势是文本处理。好了,废话不多说,直接来干货吧 566cecd03e0a6aca261b5f7bce5a0d62.png 566cecd03e0a6aca261b5f7bce5a0d62.png

第一个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的基础知识,就介绍到这里,下期见。拜了个拜8be131d00e0a732df94c0c408a33f717.png8be131d00e0a732df94c0c408a33f717.png

26058d4b7343d287bfc55d8b3e4aed9d.gif 06ae16a99bef53ffe62dbbe0fb95beb5.gif c49356180b4a7b7e79a6ed723376f201.gif 

END

550ad9e14873f6f389a4eb171076bdf2.png

                                                                 点个“在看”表示朕 已阅  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值