Perl学习笔记(一)
注:学习笔记主要来源于Superor的Perl教程视频,附链接。
第1集:第一章 Perl的概述 link
第2集:第二章 Perl的简单变量link
第3集:第二章 Perl的字符串变量link
第4集:第二章 字符串变量和小结link
1. 注释
单行: #codes
多行:POD方法
=pod
codes to comment
=cut
2.变量
$标量:由字母/下划线/数字组成(首字符字母或者下划线),区分大小写,长度不限;
@数组
%哈希
文件:大写
3.数值变量
- 整数的表示:
1_200_000可以用下划线分割字符,分割位数不定
012:首位0代表八进制 0x1f:首位0x代表十六进制
整数限制15位有效数字,16位之后截断 - 浮点的表示:
11.4 -0.3 .3 3. 5.4e2:e/E都可以,+/-,1-3位数字
指数范围-309-308,
注意精度问题
$val=9.01e21 + 0.01 - 9.01e21; #结果为0
$val=9.01e21 - 9.01e21 + 0.01;#结果为0.1
4.字符串变量
- 双引号:支持替换、支持转义字符;
$str="short";
$string="long";
print "str is $str\n";#str is short
print "str is $string\n"; #str is long 匹配长的字符串
print "str is ${str}ing\n";#str is shorting
print "bell ring: \a\n";
print "back#\bspace\n";#\b退格 输出为backspace
print "copy\rabc\n";#\r回车表示回到最开头
print "abc\tdef\n";#abc def
print "the \$var\n";#the $var
#\取消字符($ \ ")含义
print "a quote \" in string\n";#a quote " in string
print "a quote \\ in string\n";#a quote \ in string
print "\045\n";#\nnn八进制表示的ASCII码 输出%
print "\x25\n";#\xnn十六进制表示的ASCII码 输出%
- 单引号:不进行变量替换、转义、可以跨行;
\ 的作用:字符串中有单引号或者有\时候:
$var=111;
print 'the \$var\n';#the \$var\n
print 'this is the first line,
this is the second line';
- 特殊表示
qq(string in qq): 相当于“string in qq”
q(string in q): 相当于’string in qq’
()可替换为<>,{},[],//,;;,等相同字对,可嵌套 - 变量初值
为创建时状态为undef,到达文件尾部也为undef,创建后状态为defined;
说明变量为未定义:undef $a; 代表0或者空字符串
用在条件判断中: if(undef $a)或者是 if(defined $a)
代替不关心的变量:
$s="a:b:c:d";
($a1,undef,undef,$d1)=split(/:/$s);
如果有undef变量又不知道在哪,可加-w参数进行提示:#!/usr/bin/perl -w
- 相关函数
chop()截去最后一个字符
chomp()截去末尾的行分隔符\n,行分隔符可由$/定义
直接改变变量
$a="ab\n\n\n";
$/=""; #设置成空串 可一次截去多个换行符
chomp($a);
print "chomp many $a\n";
$a="abcd";
$/="cd"; #截去cd
chop($a);
print "chop $a|";
$a="abcd";
chomp($a);
print "chop $a|";#chop ab|