设为首页 收藏本站
查看: 730|回复: 0

[经验分享] perl入门--语法和结构(1)

[复制链接]

尚未签到

发表于 2017-5-18 12:57:43 | 显示全部楼层 |阅读模式
  perl入门:
windows下perl的执行:
建立perl文件 a.pl
cmd命令下perl a.pl
1.perl语法和结构
perl语句必须由一个分号结尾。
1)打印输出
注释由#开头。
print+由逗号隔开的字符串或者数字
printf类似c语言中的printf(),归整输出内容格式。
ex:
#filename:a.pl
#author:wjy
#date:20110612
print "hello,world/n";
print "hello,"," world/n";
print ("Hello world/n");
printf "Hello world/n";
printf("My name is %s/n","wjy");
2)数据类型:
标量
数组
关联数组(散列Hash)
  变量以特殊字符开头,跟任意数目字母,下划线。
特殊字符由变量类型和语境决定。
变量大小写敏感。
  标量:
标量只能保存单个值,单个字符串或单个数字。
以" $ "开头。
ex:
$first_name = "wu";
$last_name = "jiaying";
print "Hello ", $first_name, $last_name
数组:
有序排量的标量。
各个元素从0开始索引。
变量以" @ " 符号开头。
常用内建函数:
pop移除最后一个元素并返回。
push数组尾部添加新元素。
shift移除第一个元素并返回。
unshift数组开头添加新元素。
splice数组指定位置添加或移除元素。
sort数组元素进行排序。
ex:
#pop
print "$names[2]/n";
$names2=pop@names;
print "$names2/n";
print "@names/n";
#push
push (@names,"heihei");
print "@names/n";
#shift
$first=shift(@names);
print "$first/n";
print "@names/n";
#unshift
unshift (@names,"sun");
print "@names/n";
#splice
print "@name/n";
splice (@names,1,2);
print "splice @names/n";
#第一个参数为需要处理的数组,第二个参数为需要删除的元素的数组索引值,第三个参数为需要删除的从索引值开始的第几个元
  splice有四种用法,分别是:
  1.splice ARRAY,OFFSET,LENGTH,LIST
  2.splice ARRAY,OFFSET,LENGTH
  3.splice ARRAY,OFFSET
  4.splice ARRAY
说明:移除在ARRAY中由OFFSET和LENGTH指定的元素,
同时让LIST中的元素代替移除的元素。
在列表上下文,函数返回溢出后的数组元素。
在标量上下文,返回溢出的最后一个元素,如果无元素移除返回UNDEF。
  注意:如果OFFSET为负数, 则以数组的尾部为起始点。
如果省略LENGTH(属于第三种情况),则移除从OFFSET到尾部的元素。
如果LENGTH为负数,则除数组尾部LENGTH个元素外,移除从OFFSET到尾部的所有元素。
如果OFFSET和LENGTH都为空,去移除所有元素。如果 OFFSET越界,PERL会提示警告并在数组尾部中插入LIST或空。
  对数组元素进行排序——使用sort函数
  程序:
  my @line=qw /12 34 9 12 44 3 11 67 23 1 4 1 7 3 0/;
print "The sorted number is : ";
print join(' ',sort{ $a <=> $b }@line);
print "/n";
print join(' ',sort@line);#等同于 print join(' ', sort { $a cmp $b } @languages), "/n";
  结果:
The sorted number is : 0 1 1 3 3 4 7 9 11 12 12 23 34 44 67
通过改变$a与$b的位置可以降序排序,若将<=>换为cmp,则可以进行以ASCII进行排序。
  散列:
关联数组
一组未经排序的键/值对
通过字符串进行索引
散列变量以" % " 开头.
%employee = (
"Name" => "wujiaying",
"Phone" => "123456",
"Position" => "CEO"
);
#Name为键,wujiaying为值
print $employee{"Name"},"/n";
print $employee{"Phone"} ;
常用内建函数:
keys 检索散列数组中的所有键
values检索散列中的所有值
each检索散列中的某个键/值
delete删除某个键/值对
exists检查散列某个key是否存在
ex:

%employee = (
"Name" => "wujiaying",
"Phone" => "123456",
"Position" => "CEO"
);
#Name为键,wujiaying为值
print $employee{"Name"},"/n";
print $employee{"Phone"},"/n" ;
  print keys%employee,"/n";
print values%employee,"/n";
  while(($key, $value) = each %hash)
{
print "$key => $value/n";
}
  while(($key, $value) = each %employee)
{
print "$key => $value/n";
}
  if(exists $employee{'Name'})
{
print "true";
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378819-1-1.html 上篇帖子: perl ide集成开发环境整理大全[转载] 下篇帖子: perl中的shift和unshift使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表