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

[经验分享] Perl的骆驼精神(一)

[复制链接]

尚未签到

发表于 2015-12-28 09:37:52 | 显示全部楼层 |阅读模式
  Perl语言中的大部分语句表达式后都紧接一个分号,分隔不同的Perl语句。
  perl解释器能一次完成编译和运行这两个动作。 perl通过一对反引号"``"来表示运行外部命令。
  
  标量(scalar)包括数字和字符串两部分。
  在perl内部按“双精度浮点数”的格式来存储数字,整型常量也会被转换成等效的浮点数。
  perl允许在数字直接量间插入“_”分隔符。而且对于十进制(decimal)之外的数。八进制(octal)以“O”开头。
  十六进制(hexadecimal)以“0x”开头。二进制(binary)以“0b”开头。
  数字操作符包括:+,-,*,/,%。取模操作先取整再求余。
  $fred += 5;         $str .= "";
  
  perl内的字符串长度不受限制,从空字符串到无限长都可以。
  如果源码内出现除ASCII之外的其他字符,需要加use utf8;来加入任意一个unicode的支持。
  单引号内的字符串,基本不会出现特殊字符,除单引号“ ‘ ”和“ / ”,其他字符都表示他们本身。
  双引号内的字符串,可以表示多个特殊字符,而且支持变量内插。
  字符串操作符有:字符串连接符“ . ”,字符串重复操作符“ x ”。表示重复的直接量在使用前会取整,直接去掉小数。
  5x4.8          #得到“5555”
  perl内支持数字与字符串直接的自动转换,根据操作符来判断。字符串中的非数字部分及其之后的数字部分,在转换过程中都会被忽略。
  
  标量变量(variable),以美元符号“$”来表示,为了避免变量名的歧义,可以使用花括号{}来将变量名括起来。
  perl中的变量不需要初始化,初始值都是undef。而后可以直接用来赋值或运算。
  运算操作符有比较操作符:按数字或字符串来划分,==(eq), !=(ne), <(lt), > (gt), <= (le), >= (ge)。
  布尔值:perl内部没有专用的布尔类型。如果数字是“0”,则为假,其他都是真。如果字符串是空,则为假,其他都是真。
  ’0‘是唯一的为假的非空字符串。
  perl中的控制结构:if...else..      while( )  {.....}
  
  print输出结果用双引号“”来表示输出内容。
  print "The answer is ", 6*7, ".\n";         #也可以用逗号","隔开,连在一块来输出。
  perl获得用户输入<STDIN>一般在末尾会带有换行符。
  $line = <STDIN>;
  chomp()函数,用于去掉字符串末尾的换行符。
  chomp($text = <STDIN>);
  defined()函数,用来判断某个字符串是不是空字符串。
  perl内部的警告功能。可以在命令行用perl   -w perl_file来表示。或者use   warning。
  当perl未被告知使用哪个变量或数值时,使用默认变量$_。
  如print没参数时,默认打印$_的值。
  
  数组:存放列表变量,可以用“@”字符加数组名来引用整个数组。数组索引从“0”开始到“$#+数组名”
  $rock[$#rock] = 'hard rock';              #对最后一个元素赋值。
  列表直接量:用圆括号内用逗号隔开的一串数字表示。或者使用qw ()表示,其中的空白符会被自动忽略。
  qw( fred barney betty dino )  #表示4个元素的列表。
  或者使用范围操作符 ..   (1..100);   #以“1”为单位而递增。
  带双引号的字符串内也可以进行数组内插,同时注意数组的索引值中的变量会按普通的字符串表达式来表示,进而计算索引值。
  $y =2;   $x = "this is $fred[$y-1]'s place"   #会直接取$fred[1]这个变量。
  在标量上下文和列表上下文,perl的处理方式是不同的。
  1)数组的名称在列表上下文,返回元素的列表。在标量上下文,返回数组中的元素个数。     $number = 42+@people;
  2)在标量上下文,使用reverse函数。  $backwards= reverse qw/yabba dabba doo/;    #赋值oodabbadabbay。
  3)在标量上下文,<STDIN>返回输入数据的下一行。在列表上下文,<STDIN>返回所有剩下的行。
  
  pop/push操作:对数组的最后一个变量进行操作。
  shift/unshift:对数组的第一个变量进行操作。
  splice操作:对数组随意的修改。第一个参数表示要修改的数组。第二个参数表示操作的元素的起始索引。第三个参数表示操作的长度。
  第四个参数表示要替换的列表。
  @array= qw( pebbles dino fred barney )
  @removed=splice @array,  1, 2, qw(wilma);     #@array=qw( pebbles wilma barney)。
  可以使用foreach循环体来遍历列表或数组中的数值,并且在此过程中列表或数组或变量都不会被改变。
  foreach $rock (@rocks) {....}
  reverse操作符:返回次序相反的列表或数组。
  sort操作符:按ASCII码的大小或字符的代码点的大小来对列表或数组进行排序。
  each操作符:返回数组中下一操作元素的索引值及数值。
  while (my ( $index, $value) = each @rocks)   {...}

运维网声明 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-157278-1-1.html 上篇帖子: Perl程序设计中常用的函数 下篇帖子: perl tt测试环境部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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