加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl笔记

发布时间:2020-12-15 23:42:49 所属栏目:大数据 来源:网络整理
导读:1、8进制和16进制数 ? 8进制以0打头,16进制以0x打头。 ? 例:$var1 = 047; (等于十进制的39) ? $var2 = 0x1f; (等于十进制的31) 2、字符串 ? 惯用C的程序员要注意,在PERL中,字符串的末尾并不含有隐含的NULL字符,NULL字符可以出现在串的任何位置。 . 双引
1、8进制和16进制数
? 8进制以0打头,16进制以0x打头。
? 例:$var1 = 047; (等于十进制的39)

? $var2 = 0x1f; (等于十进制的31)


2、字符串
? 惯用C的程序员要注意,在PERL中,字符串的末尾并不含有隐含的NULL字符,NULL字符可以出现在串的任何位置。
. 双引号内的字符串中支持简单变量替换。
.双引号内的字符串中支持转义字符
Table 3.1. Escape sequences in strings.

Escape Sequence Description
a Bell (beep)
b Backspace
cn The Ctrl+n character
e Escape
E Ends the effect of L,U or Q
f Form feed
l Forces the next letter into lowercase
L All following letters are lowercase
n Newline
r Carriage return
Q Do not look for special pattern characters
t Tab
u Force next letter into uppercase
U All following letters are uppercase
v Vertical tab

?L、U、Q功能可以由E关闭掉,如:
?$a = "TLHIS IS A ESTRING"; # same as "This is a STRING"

.要在字符串中包含双引号或反斜线,则在其前加一个反斜线,反斜线还可以取消变量替换,如:
??$res = "A quote " and A backslash ";
??$result = 14;
??print ("The value of $result is $result.n")的结果为:
??The value of $result is 14.

.可用nnn(8进制)或xnn(16进制)来表示ASCII字符,如:
??$result = "377"; # this is the character 255,or EOF
??$result = "xff"; # this is also 255

.单引号字符串
??单引号字符串与双引号字符串有两个区别,一是没有变量替换功能,二是反斜线不支持转义字符,而只在包含单引号和反斜线时起作用。单引号另一个特性是可以跨多行,如:
??$text = 'This is two
??lines of text
??';
??与下句等效:
??$text = "This is twonlines of textn";

.字符串和数值的互相转换
??例1:
??$string = "43";
??$number = 28;
??$result = $string + $number; # $result = 71
??若字符串中含有非数字的字符,则从左起至第一个非数字的字符,如:
??$result = "hello" * 5; # $result = 0
??$result = "12a34" +1; # $result = 13

.变量初始值
??在PERL中,所有的简单变量都有缺省初始值:"",即空字符。但是建议给所有变量赋初值,否则当程序变得大而复杂后,很容易出现不可预料且很难调试的错误。

3、

整数比较操作符

操作符 描述
< 小于
> 大于
== 等于
<= 小于等于
>= 大于等于
!= 不等于
<=> 比较,返回 1,or -1 ?
操作符<=>结果为:
??0 - 两个值相等
??1 - 第一个值大
?-1 - 第二个值大

4、赋值操作符

.=可在一个赋值语句中出现多次,如:
??$value1 = $value2 = "a string";
.=作为子表达式
??($a = $b) += 3;
??等价于
??$a = $b;
??$a += 3;

5、字符串联结和重复操作符

??联接: .
??重复:x
??联接且赋值(类似+=): .=

6、逗号操作符?

??其前面的表达式先进行运算,如:
??$var1 += 1,$var2 = $var1;
??等价于
??$var1 += 1;
??$var2 = $var1;
??使用此操作符的唯一理由是提高程序的可读性,将关系密切的两个表达式结合在一起,如:
??$val = 26;
??$result = (++$val,$val + 5); # $result = 32
??注意如果此处没有括号则意义不同:
??$val = 26;
??$result = ++$val,$val + 5; # $result = 27

7、列表
??列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1,5.3,"hello",2),空列表:()。
??注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值。
??列表例:
????(17,$var,"a string")
????(17,26 << 2)
????(17,$var1 + $var2)
????($value,"The answer is $value")

8、数组
??列表存贮于数组变量中,与简单变量不同,数组变量以字符"@"打头,如:
????@array = (1,2,3);
??注:
?(1)数组变量创建时初始值为空列表:()。
?(2)因为PERL用@和$来区分数组变量和简单变量,所以同一个名字可以同时用于数组变量和简单变量,如:
????$var = 1;
????@var = (11,27.1,"a string");
??但这样很容易混淆,故不推荐。


9、数组的存取

??.对数组中的值通过下标存取,第一个元素下标为0。试图访问不存在的数组元素,则结果为NULL,但如果给超出数组大小的元素赋值,则数组自动增长,原来没有的元素值为NULL。如: ????@array = (1,3,4); ????$scalar = $array[0]; ????$array[3] = 5; # now @array is (1,5) ????$scalar = $array[4]; # now $scalar = null; ????$array[6] = 17; # now @array is (1,5,"",17) ??.数组间拷贝 ????@result = @original; ??.用数组给列表赋值 ????@list1 = (2,4); ????@list2 = (1,@list1,5); # @list2 = (1,4,5) ??.数组对简单变量的赋值 ????(1) @array = (5,7,11); ????($var1,$var2) = @array; # $var1 = 5,$var2 = 7,11被忽略 ????(2) @array = (5,7); ????($var1,$var2,$var3) = @array; # $var1 = 5,$var3 ="" (null) ??.从标准输入(STDIN)给变量赋值 ????$var = <STDIN>; ????@array = <STDIN>; # ^D为结束输入的符号

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读