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

[经验分享] perl编程总结

[复制链接]
发表于 2018-8-31 07:19:22 | 显示全部楼层 |阅读模式
  perl主要有三种数据类型,一个是$保存的变量,一个是@保存的数组,一个是%保存的哈希数组。
  perl中的变量$
  $保存的变量在PERL中是不区分任何类型的,也就是说没有数据类型的概念。perl会根据上下语境自动识别。例如 my $value = 10;perl会当做变量来识别。perl中连接两个字符串变量使用的是.号。例如
  my $first = "i love"; my $second = "study"; my $value = $first.$second;就将两个字符串连接到一起了。
  perl中数字比较大小使用 > < =等,字符串比较大小是 eq gt等。
  对字符串的的替换使用的命令是 s///; 例如 my $test = &quot; it &quot;;   $test = ~ s/^\s+//;$test =~ s/\s+$//;去掉首尾的空格,这对于文件路径很重要,去掉开头与结尾的空格。符号^表示是字符串的开头,符号$表示是符号的结尾。.匹配任何字符,*表示是0到多个,+表示一个到多个,?表示0到1一个。
  split命令
  使用split命令可以将一个字符串分解成一个数组。使用方式为 split /swparator/,$value;例如
  my $test = &quot;it ,is ,goood&quot;; my @array = split/,/$testl;得到的结果数组中就是it is goood.
  join命令
  join命令与split的命令相反,是把数组中的每一个变量粘合在一起。用法 join $value,@array.上例子中,使用join例如 my $value = join ,@array. 最后$value 为&quot;it,is,gooood&quot;;
  m//;
  将变量按照一定的模式进行匹配m//之间可以是正则表达式也可以是一定变量,例如:my $test = &quot;how are you&quot;;  if($test =~ m/test/) 看字符串是否包含test。
  $_
  代表目前perl处理的变量,chomp($value);可以去掉输入的变量后面的回车符号。
  \
  这个字符代表获得元字符,是获得元字符的意思。例如想在正则表达式中匹配点号.使用\.就可以防止perl程序进行转意。
  index命令
  在一个字符串中查找一个子串第一次出现的位置, my $test = &quot;you are good&quot;; my $place = index($test,&quot;are&quot;);就是查找字符串are第一次出现的位置,rindex是查找指定字符串最后一次出现的位置。
  substr命令
  取一个字符串的子串,例如 my $test = &quot;you are good&quot;; my $newstr = substr($test,0,3); $newstr就为you.
  die命令
  die可以使perl遇到错误时跳出程序。
  perl中的数组@
  perl中像数组中插入元素为 push @test,$value;弹出元素是 my $test = pop @test;在最前面取和存分别是my $test = shift @test;  unshift  @test,$value;判断数据大小为 my $size = @array;取得数组的大小。
  if(@array ~~$value)数组中是否包含这个元素。清空数组中的元素为undef(@array);
  多维数组插入方式为push @AllSheetContent,[@AllRowDate];获取方式为$AllSheetContent[0]获得的是第一维数组。若是 push @AllSheetContent,$value1; push @AllSheetContent,$value2;
  $AllSheetContent[0]取得的是$value1;
  perl中的哈希%
  哈系声明,my %hashtable; 哈系赋值 $hashtable{$key} = $value;注意哈系是大括号,数组取值是中括号。获得哈系的所有key值为 my @key = keys %hashtable;获得哈系的所有values值为
  my @value = values %hashtable;  获取哈系数目的大小 my $count = keys %hashtable;
  判断哈系是否包含某个key值为 if(exists $hashtable($value)) 删除哈系中的一个键值对为
  delete $hashtable{$value}
  perl中的文件操作
  文件句柄
  open openhandle &quot;filename&quot;;
  open openhandle &quot;>>filename&quot;;
  这三种打开文件的方式分别为:第一种是打开文件进行读取操作。第二种是以写的方式打开文件,如果之前存在相同名字的文件则删除掉。第三种是以追加写的方式打开文件,如果之前存在则在文件后面进行追加写。最后要记得关闭文件句柄。close(openhandle);
  文件类型的判断使用 if(-e $filename)判断文件是否存在,使用if(-d $filename)判断文件是否是一个目录,使用if(-f $filename)判断文件是否是一个文件。
  基本上就这些,有点杂乱,后续有知道的在补充。


运维网声明 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-559058-1-1.html 上篇帖子: mmm_agent_navy2.conf is world readable! at /usr/share/perl5/MMM/Common/Config.pm 下篇帖子: C++调用perl 主线程等待子线程结束
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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