微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl语言入门(1)

第一章 perl
 #!/usr/bin/perl -w
 #上述语句声明perl的路径和启用警告。
-----------------------------------------------
第二章 标量数据
1. 数值(整数和浮点数),在perl中统一都是按照双精度浮点数来计算的。
 浮点数范围至少是1e-100到1e100.
 
 61_298_040_283_768
 # 整数的一个表示方法

 八进制octal以0 开头,十六进制以0x 开头,二进制(binary) 0b 开头.
 十进制decimal

 数字操作符+-*/ %取模 **指数。
  注意对于取模10.2%%3.2,先是把2个操作数变成对应的整数值再计算,
 亦10%%3的模。
 注意2+3与2 + 3 都是正确的。

2. 字符串
 最短的字符串是空字符串""或'',最长没有限制。
 单引号内引用单引号和反斜线需要用反斜线\转义。
 
 符号 含义
 \n 换行
 \r 回车
 \t 制表符 
 \f formFeed
 \b 退格
 \a 响铃
 \e escape(ASCII 中的escape 字符)
 \007 任何八进制值(这里是,007=bell(响铃))
 \x7f 任何十六进制值(这里是,007=bell)
 \cC 一个控制符(这里是,ctrl +c)
 \\ 反斜线
 \” 双引号
 \l 下个字符小写
 \L 接着的字符均小写直到\E
 \u 下个字符大写
 \U 接着的字符均大写直到\E
 \Q 在non-word 字符前加上\,直到\E
 \E 结束\L,\E 和\Q

 字符串操作符
 . 字符串连接如 abc . 123
 x 字符串重复 "info" x 3 # info重复3次。

 当在需要数字的地方使用了字符串(如,乘法),Perl 将自动字符串转换为其等价的数字,就像输入的是十进制浮点数一样◆。因此“12”* “3”将给出36。后面的非数字部分和前面的空格将被去掉,如“12fred34”* “3”将给出36 而不会用任何提示◆。在极端情形,当一个不含任何数字的字符串将别转换为0。如,将“fred”当作数字来使用时。

 不用担心使用的是数字还是字符串(大多数情况下)。Perl 将自动转换它们.

 
3.变量
 $字符或下划线开头,后面可以包含数字。

注意 没有初始化的变量的值为undef,输出时为空。也就是什么都没有,但是用defined测试值返回false。


 $fred = 17;
 # 对变量赋值。

 双目操作符
 += *= .= **=

 如果一个变量未被赋值,则将使用空值替换.
 $barney = “fred ate a $meat”; #$barney 现在是“fred ate a ”;

 允许使用小括号改变运行级别。

 数字和字符串的比较运算符,shell比较整型值时用的是字符串这一点跟perl正相反。
 比较关系 数字 字符串
 相等 = =  eq
 不等 !=  ne
 小于 <  Lt
 大于 >  gt
 小于或等于 <=  le
 大于或等于 >=  ge

4. if控制结构
 if(){
 }else{
 }
 # ()为真则执行。 

 布尔值
 数字0为假,其余为真。
 字符空为假,其余为真。
 数字0和'0'都为假。

4. 从键盘输入
 $line = <STDIN>;
 # <STDIN>表示字符串+换行符。
 
 chomp 取消字符串变量后的换行符,仅能去掉一个,返回值1。
 如果没有,那什么也不做,返回0。
 chomp($text = <STDIN>);
 $test = <STDIN>;
 chomp($test); 或者chomp $test,不加小括号也可以。

5. while控制结构
 $count = 0;
 while($count < 10){
  $count += 2;
  print "$count \n";
 }

6. undef值
 print 一个没有初始化的变量输出空,就是空也不是空格。

 变量在第一次被赋值之前有一个特殊值undef,如果是对于数字则表现为0,对于字符串则表现为空串;
 但undef不是0也不是空串,而是一种标量类型。
 由于undef在需要数字的地方自动转化为0
 $n=1
 while ($n <10) {
  $sum +=$n;
  $n += 2;
 }
 print "The total was $sum .\n";
 
 针对字符串
 $sting .= "more text\n";

7. defined函数
 
 测试1个变量是不是undef,如果是则返回false,不是则返回true。

 #!/usr/bin/perl -w  if (defined $test){   print "not is undef\n";  }else{   print "is undef\n";  }  用print打印未初始化的变量将被警告。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐