二:标量数据(笔记)

开始学习perl了。


大部分的标量不是数值就是由字符所组成的字符串构成。

1,数值
2,字符串
字符串是一连串的字符。字符串可以包含各种字符的任意组合。最短的字符串时不含字符的空字符串。

2.1,单引号的字符串直接量指的是一对单引号所括住的一串字符。前后两个单引号并不属于字符串的一部分,它们只是用来让perl识别字符串

的开头与结尾。单引号和反斜线字符除外,单引号内所有字符都代表它们本身(在字符串跨越数行时也包括换行字符)。要标示反斜线本身时

,需要连续两个反斜线;要表示单引号本身,则将反斜线接着单引号。

2.2,双引号内的双字符串直接量和单引号内的字符串一样,它也是一连串的字符,不过是被括在一对双括号里面,但是双引号内的反斜线拥有

完整的能力,可用来表示控制字符或通过八进制及十六进制来表示任何字符。

几个特殊的转义字符
l 将下个字符转为小写
L 将到E为止的所有字符转为小写
u 将下各字符转为大写
U 将到E为止的所有字符转为大写
Q 将到E为止的非文字字符加上反斜线
E 结束L,U或Q


2.3,字符串操作符
字符串可以用.操作符来彼此连接(concatenation).
字符串复制(string repetition)操作符是个特殊的字符串操作符,它是一个小写字母x。此操作符会将左边的操作数(operand)与它本身重复

连接,次数则有右边的操作数指定。
"hello" . "world" #与"helloworld"相同
"hello" . '' . "world" #与"hello world"相同
"fred" x 3 #也就是"fredfredfred"

3,数字与字符串之间的自动转换
通常,perl会视需要自动在数字和字符串之间进行转换。它如何知道需要的数字或字符串呢?这完全靠作用在标量值上的操作符来决定。如果

操作符需要的是数字(例如+),perl就会将操作视为数字;在操作符需要字符串时(例如.),perl便会将操作数视为字符串。


4,perl的内置警告信息

4.1,要在运行程序时启用警告功能,使用-w命令行选项
perl -w my_program
4.2, 如果想让该程序每次运行都启用警告信息,可以利用开头的#!行来指明
#!/usr/bin/perl -w
4.3, perl 5.6之后的版本也可以利用warnings这个编译命令来启用警告功能
#!/usr/bin/perl
use warnings;
利用diagnostics这个编译命令可以看到较详细的问题描述。
#!/usr/bin/perl
use diagnostics;

5, 标量变量
变量(variable)就是某个容器的名称,里面可以存储一个或多个值。变量的名称在程序运行期间保持不变,但是变量里的值通常会不断改

变。
标量变量的名称是以美元符号($)开头,后面接着所谓的"perl标识符":一个字母或下划线,后面还可以接更多的字母,数字或下划线。
在perl里,标量变量总是以$开头。

6,标量的赋值运算
标量变量的操作中最常见的便是赋值运算,也就是将某个值存进变量里。perl以等号为赋值操作符,左边是变量名称,右边的表达式则是用

来赋予变量的值。
$fred = 17; #将$fred的值设为17
$fred = $fred + 3; #将$barney设为$fred当前值加上3(即20)

7,双目赋值操作符
因为像$fred = $fred + 5 这样的表达式会经常出现,所以perl提供了更新变量内容的简写方式,也就是双目赋值操作符。
$fred = $fred +5; #不使用双目赋值操作符
$fred += 5; #使用双目赋值操作符

$fred = $fred * 3;
$fred *= 3;

另一个常见的双目赋值操作赋,就是由字符串连接操作符(.)改造而成的添加操作符(.=)
$fred = $fred . " "; # 在$fred后面加一个空白
$fred .= " "; # 用添加操作副做一样的事情

8, 用print输出结果

9, 在字符串里替换标量变量
当字符串放进双引号内时,除了会检查反斜线转义字符外,也会进行变量替换(variable interpolation).字符串里的任何标量变量名称,

都会被替换成该变量的当前值。

$meal = "brontosaurus steak";
$barney = "fred ate a $meal"; # $barney 现在是"fred ate a brontosaurus steak"
$barney = 'fred ate a ' . $meal; # 另外一种写法

10,操作符的优先级与结合性

11, 比较操作符
比较 数值 字符串
相等 == eq
不等 != ne
小于 < lt
大于 > gt
小于或等于 <= le
大于或等于 >= ge

12, if控制结构
if ($name gt 'fred'){
print "'$name' comes after 'fred' in sorted order. ";
}

13, 取得用户的输入
输入操作符 ,程序代码里能出现标量值的地方只要放上,perl就会从"标准输入"读进一行文字(读取到换行符为止).
$line = ;
if ($line eq " "){
print "That was just a blank line ! ";
} else {
print "That line of input was: $line";
}

14, chomp操作符
它只能用在一种变量上,该变量的内容必须为字符串。如果此字符串的结尾是换行符,chomp就会将它移除。
$text = " a line of test "; #假设是从读进来的
chomp ($text); #去除换行符

chomp($test = ); #读入文字,略过最后的换行符。

$text = ;
chomp($text);

字符串后面如果有两个以上的字符,chomp只会删除一个,如果结尾处没有换行符,chomp就不会起作用并且会返回0。

15,while控制结构
在while循环中,只要条件式持续为"真",就会不断的执行块里的程序代码
$count = 0
while ($count < 10) {
$count +=2;
print "count is now $count "; #显示2 4 6 8 10
}

16,undef值
如果用到某个变量却还没有对它进行赋值,那么变量的初始值就是undef(未定义).

17,defined函数
要判断某个字符串是undef而不是空字符串,可以使用define函数。这个函数对undef会返回"假",对其他参数则都会返回"真";
$madonna = ;
if ( defined($madonna) ) {
print "The input was $madonna";
} else {
print "No input available! ";
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245686/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245686/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值