perl-1-标量

2021-06-07  本文已影响0人  打着石膏脚的火星人

一、简介

Perl(Practical Extraction and Report Language),是一种高级、通用、直译式、动态的程序语言,最具代表性的为正则表达式,也称实用报表提取语言。

二、标量数据

1.标量数据分为数字和字符串。
2. 数字
o377         #八进制--255
0xff         #十六进制--255
0b11111111   #二进制--255//前置0
+ - * /  %(取模) **(取幂)
取模:先取整数再求余
eg: 10.5%3.2等效于10%3
2**3---2的三次方
3. 字符串
use utf8    #Unicode编码
' fred '  #共四个字符
‘ \’\\ '  #单引号和反斜杠两个字符

2.双引号内的字符直接量
双引号的反斜杠更为强大,可以转义许多控制字符或者用八进制或十六进制写法来表示任何字符。

" coke\tsprite "  # coke、制表符(tab)和sprite

3.双引号内字符串的常见反斜线转义

组合       意义
\n         换行
\r         回车
\t         水平制表符
\f         换页符
\b         退格

4.字符串操作符

.    #句号操作符,连接操作符
eg: "hello" . "world"     # 等同于"helloworld"
x    #字符串重复操作符
eg: "fred"x3   # "fredfredfred"
eg: 5x4.8   # "5555",先将数字5转换成字符串"5"
且有操作数在使用前会先取整(4.8变成4)
重复次数小于1时,会生成程度为0的空字符串
3. 数字与字符串间的自动转换

自动转换完全取决于操作符

"12" *"3"         #36
"12fred34" * "3"  #也是36
‘o377’            #十进制377,"自动转换总是按照十进制数字来处理"

前置0的技巧只对直接量有效,不能用于字符串的自动转换

4. Perl内置警告信息
法一: use warnings;        # 能够指定代码的作用范围
法二: perl -w my_lab.plx    #此法对所有涉及代码都开启警告功能
法二也可以写成: "#! /usr/bin/perl-w"
法三: use diagnostics
5. 标量变量
$name
$Name  #两者为不同变量
6. 赋值
$fred = $fred + 5 ;
$fred += 5 ;       #两者等效,双目赋值操作符
$str = $str . " "  #在str的末尾追加一个空格字符
$str .= " "        #作用同上

$barney = " fred ate a $meat " #如果meat未被赋值过,用空字符来替换
print "$barney"   #双引号是多余的
print  $barney    #变量内插又叫双引号内插
print "The name is \$barney.\n"     #会输出$符号
print ' The name is $barney '."\n"  #效果同上 

$what = steak ;
$n  = 3 ;
print "fred ate $n $whats .\n" ;此处引用的是$whats的值,而不是what
print "fred ate $n ${what}s .\n"
7. 借助代码点创建字符

键入一些键盘上没有的那些字符,可以直接键入这些字符的代码点,再通过chr()函数转换成对应字符。

$alef  =  chr( 0x05D0 )
$alpha = chr( hex('03B1') ) ;
$code_point = ord('?');
"$alpha$omega" 
"\x{03B1}\x{03C9}"  #如果不预先创建变量,也可以在双引号内用\x{}的形式
8.比较操作符
大于或等于:>=
小于或等于:<=
<>,=>在perl里都有别的意义。

数值与字符串的比较操作符

比较              数字                  字符串
相等               ==                    eq
不等               !=                     ne
小于               <                      1t
大于               >                      gt
小于或等于          <=                     1e
大于或等于          >=                     ge
9. 布尔值
数字:0为假,所有其他数字都为真
字符串:空字符串为假,其他字符为真
既不是字符也不是数字;先转换成字符或数字再进行判断
字符串'0'跟数字0是同一个标称值 # "因为自动转换都是以十进制进行转换的"
10. 获取用户输入

行输入操作符<STDIN>:直到换行符为止 。

$line = <STDIN> 
chomp( $text = <STDIN> ) ;  # 读入文字,略过最后的换行符
11. undef值

首次赋值前:变量值的初始值就是特殊的undef值,既不是数字,也不是字符串,他完全是另一种类型的标称值。

判断某个字符串是undef而不是空字符串
$madonna = <STDIN>
if ( defined(madonna) )

$m = undef  # 自己创造undef值,回到从未用过的状态
上一篇下一篇

猜你喜欢

热点阅读