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

perl语言入门(1)

发布时间:2020-12-15 20:53:40 所属栏目:大数据 来源:网络整理
导读:第一章 perl ?#!/usr/bin/perl -w ?#上述语句声明perl的路径和启用警告。 ----------------------------------------------- 第二章 标量数据 1.?数值(整数和浮点数),在perl中统一都是按照双精度浮点数来计算的。 ?浮点数范围至少是1e-100到1e100. ? ?61_29

第一章 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 字符)
?07 任何八进制值(这里是,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 textn";

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

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

(编辑:李大同)

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

    推荐文章
      热点阅读