perl语言入门笔记
2010-05-03 09:43
316 查看
perl记事本
1. 'yu' x 3 # print yuyuyu
2.print "yu
jian ${age}s" # 加{} 促使变量不会变成$ages
3. 4 ** 2 #4的平方
4.(1..5)
# -->(1,2,3,4,5)
5.qw ( yu jian's book) # 简洁,更少输入
6.($yu,$jian)=($jian,$yu)
# 值互换
7.($yu,$jian)=qw(yu jian) # 赋值
8.@array=qw/yu
jian/; #数组
9.@array=5..9;
$yu=pop(@array) #
$yu=9 and @array=(5,6,7,8)
$yu=pop @array # $yu=8 and
@array=(5,6,7)
10.如果数组为空 pop不会报错,什么也不返回,直接返回undef
11.push(@array,0)
# @array=(5,6,7,0)
12.pop和push都操作数组末尾
13.shift
和unshift是对数组的开始端操作
14.$_ perl的默认变量
for(1...10){
print $_; # $_ = 1 or 2 or 3...
}
15.perl会正确处
理上下文
@people=qw{yu gao};
@list=@people #得到列表
$n=@people
#得到人数2
16.scalar @array #scalar 导致切换为标量上下文
@array
=qw/yu jian gao su/;
print "love is ".@array."/n"; #love is 4
print
"love is ",@array,"/n"; #love is yujiangaosu
print "love is
".scalar @array,"/n";#love is 4
17.@lines=<STDIN>
#在列表上下文中读取标准输入
18.chomp 去掉所有的换行符 chmop(@lines)
19.
调用自定义方法 &methodName;
20.sub max{
if(@_!=2){ #判断参数个数
print "waning!!!";
return -1;
}
my($m,$n);
#创建新的所有变量
($m,$n)=@_; #将参数赋值给变量
if($m > $n){$m}else{$n}
}
21.my($num)=@_
#获取数组的第一个元素
my $num=@_ #数组的数量
22.use strice
; #强制使用一些严格的良好的程序语言规则
23.sub division{
$_[0] /
$_[1]; #第一个参数和第二个参数
}
24.@ARGV=qw#
file1 file2 #;# 强制让砖石操作符读取这两个文件
while(<>){
chomp;
print "It was $_/n":
}
25.printf
"Hello, %s; your password in %d days!/n",$user,$days;#格式化输出
%d
整数 %g 浮点数
27.die处理错误输出
28.读取文件
open
CONFIG,"c:/test.txt";
while(<CONFIG>){
print
$_."/n";
}
29. say == print xxxx ."/n" # say 相当
等于print 加换行符
30.hash
$family_name{"fred"}="flint";
$family_name{"bar"}
="rubble";
%family_name("fred","flint","bar","rubble");
my
%family_name=(
"fred" => "flint",
"bar" => "rubblle";
)
my @k=keys
%family_name;
my @v=values %family_name; #return array
31.
each
函数
while( ($key,$value)=each %family_name ){
print "$key => $value/n";
}
exists函数
if(exists
$family_name("dino")){
}
delete函数
delete
$family{"fred"};
32./1,/2使用反向引用
$_=""abba;
if(/(.)/1
/){#匹配到 bb
print "it matched";
}
33.
/d = [0-9]
/w = [A-Za-z0-9_]
[^/d] 非数字
[^/w]非词
[^/s]
非空白字符
34./yes/i # /i 不区分大小写
35./s 匹配任意字符 ,
不包括换行
36./x运行加入空白,便于阅读理解
37.m//模式匹配搜索功能
S///
模式匹配替换功能
/g 全局替换
38.@fields = split /separator/
, $string;
39.my $result = join $glue,@pieces;
my
$x = join ":",4,5,6; # $x = "4:5:6";
40.*贪婪 *?非贪婪版本
41.
从命令行进行在线编辑
perl -p -w -e "s/ran/ra/g" fred.dat
-p 打印 -n
去掉自动打印 -w 打开警告选项 -e 表示后面更得是代码,而不是普通的参数
42.last 类似break
43.my
$stuff="Howdy world!";
my $where=index($stuff,"wor"); #
$where = 6
44.my $mineral=substr("Fred J.
Flintstone",8,5); # 值为Flint
45.智能匹配对应不同德操作数,不同德处理方式
%a
~~ %b 哈希的键是否一致
%a ~~@b 至少%a中的一个键在列表@b之中
%a ~~
/Fred/ 至少一个键匹配给定的模式
%a ~~ 'Fred' 哈希中某一指定键$a{'Fred'} 是否存在
@a
~~ /Fred/ 有一个元素匹配给定的模式
@a ~~ 123 至少有一个元素转化为数字后事123
$name
~~ undef $name确实尚未定义
46.system 启动子进程
system "date";
14.my
$tarfile="some*.tar";
my @dirs=qw(fred|flinet<bar&rubble>
betty);
system "tar"."cvf",$tarfile,@dirs; 带参数的系统命令调用
47.system
的所有语法对exec都适用
执行exec类似goto语句,跳转到另个进程进行执行,当前perl进程会关闭
chdir "/tmp"
or die "cannot chdir /tmp: #!";
ecec "bedrock","-o","args1",@ARGV;
48.$ENV{'PATH'}="/home/rootbeer/bin:$ENV{'PATH'}";
delete
$ENV{'IFS'};
my $make_result= system "make";
改修改并不能影响shell或者其他父进程
49.my
$now =`date`;
print "The time is now $now";
魔力反引号调用进程
1. 'yu' x 3 # print yuyuyu
2.print "yu
jian ${age}s" # 加{} 促使变量不会变成$ages
3. 4 ** 2 #4的平方
4.(1..5)
# -->(1,2,3,4,5)
5.qw ( yu jian's book) # 简洁,更少输入
6.($yu,$jian)=($jian,$yu)
# 值互换
7.($yu,$jian)=qw(yu jian) # 赋值
8.@array=qw/yu
jian/; #数组
9.@array=5..9;
$yu=pop(@array) #
$yu=9 and @array=(5,6,7,8)
$yu=pop @array # $yu=8 and
@array=(5,6,7)
10.如果数组为空 pop不会报错,什么也不返回,直接返回undef
11.push(@array,0)
# @array=(5,6,7,0)
12.pop和push都操作数组末尾
13.shift
和unshift是对数组的开始端操作
14.$_ perl的默认变量
for(1...10){
print $_; # $_ = 1 or 2 or 3...
}
15.perl会正确处
理上下文
@people=qw{yu gao};
@list=@people #得到列表
$n=@people
#得到人数2
16.scalar @array #scalar 导致切换为标量上下文
@array
=qw/yu jian gao su/;
print "love is ".@array."/n"; #love is 4
"love is ",@array,"/n"; #love is yujiangaosu
print "love is
".scalar @array,"/n";#love is 4
17.@lines=<STDIN>
#在列表上下文中读取标准输入
18.chomp 去掉所有的换行符 chmop(@lines)
19.
调用自定义方法 &methodName;
20.sub max{
if(@_!=2){ #判断参数个数
print "waning!!!";
return -1;
}
my($m,$n);
#创建新的所有变量
($m,$n)=@_; #将参数赋值给变量
if($m > $n){$m}else{$n}
}
21.my($num)=@_
#获取数组的第一个元素
my $num=@_ #数组的数量
22.use strice
; #强制使用一些严格的良好的程序语言规则
23.sub division{
$_[0] /
$_[1]; #第一个参数和第二个参数
}
24.@ARGV=qw#
file1 file2 #;# 强制让砖石操作符读取这两个文件
while(<>){
chomp;
print "It was $_/n":
}
25.printf
"Hello, %s; your password in %d days!/n",$user,$days;#格式化输出
%d
整数 %g 浮点数
27.die处理错误输出
28.读取文件
open
CONFIG,"c:/test.txt";
while(<CONFIG>){
$_."/n";
}
29. say == print xxxx ."/n" # say 相当
等于print 加换行符
30.hash
$family_name{"fred"}="flint";
$family_name{"bar"}
="rubble";
%family_name("fred","flint","bar","rubble");
my
%family_name=(
"fred" => "flint",
"bar" => "rubblle";
)
my @k=keys
%family_name;
my @v=values %family_name; #return array
31.
each
函数
while( ($key,$value)=each %family_name ){
print "$key => $value/n";
}
exists函数
if(exists
$family_name("dino")){
}
delete函数
delete
$family{"fred"};
32./1,/2使用反向引用
$_=""abba;
if(/(.)/1
/){#匹配到 bb
print "it matched";
}
33.
/d = [0-9]
/w = [A-Za-z0-9_]
[^/d] 非数字
[^/w]非词
[^/s]
非空白字符
34./yes/i # /i 不区分大小写
35./s 匹配任意字符 ,
不包括换行
36./x运行加入空白,便于阅读理解
37.m//模式匹配搜索功能
S///
模式匹配替换功能
/g 全局替换
38.@fields = split /separator/
, $string;
39.my $result = join $glue,@pieces;
my
$x = join ":",4,5,6; # $x = "4:5:6";
40.*贪婪 *?非贪婪版本
41.
从命令行进行在线编辑
perl -p -w -e "s/ran/ra/g" fred.dat
-p 打印 -n
去掉自动打印 -w 打开警告选项 -e 表示后面更得是代码,而不是普通的参数
42.last 类似break
43.my
$stuff="Howdy world!";
my $where=index($stuff,"wor"); #
$where = 6
44.my $mineral=substr("Fred J.
Flintstone",8,5); # 值为Flint
45.智能匹配对应不同德操作数,不同德处理方式
%a
~~ %b 哈希的键是否一致
%a ~~@b 至少%a中的一个键在列表@b之中
%a ~~
/Fred/ 至少一个键匹配给定的模式
%a ~~ 'Fred' 哈希中某一指定键$a{'Fred'} 是否存在
@a
~~ /Fred/ 有一个元素匹配给定的模式
@a ~~ 123 至少有一个元素转化为数字后事123
$name
~~ undef $name确实尚未定义
46.system 启动子进程
system "date";
14.my
$tarfile="some*.tar";
my @dirs=qw(fred|flinet<bar&rubble>
betty);
system "tar"."cvf",$tarfile,@dirs; 带参数的系统命令调用
47.system
的所有语法对exec都适用
执行exec类似goto语句,跳转到另个进程进行执行,当前perl进程会关闭
chdir "/tmp"
or die "cannot chdir /tmp: #!";
ecec "bedrock","-o","args1",@ARGV;
48.$ENV{'PATH'}="/home/rootbeer/bin:$ENV{'PATH'}";
delete
$ENV{'IFS'};
my $make_result= system "make";
改修改并不能影响shell或者其他父进程
49.my
$now =`date`;
print "The time is now $now";
魔力反引号调用进程
相关文章推荐
- Perl语言入门笔记 第十二章 文件测试
- Perl语言入门笔记 第四章 子程序
- Perl语言入门笔记 第六章 哈希(hash)
- Perl语言入门笔记 第二章 标量数据
- Perl语言入门笔记 第七章 漫游正则表达式王国
- Perl语言入门笔记 第十四章 字符串与排序
- Perl语言入门笔记 第三章 列表和数组
- Perl语言入门笔记 第九章 用正则表达式处理文本
- Perl语言入门笔记 第十五章 智能匹配与given-when结构
- Perl语言入门笔记 第十章 其他控制结构(unless,until,elsif,for,last,next,redo,and,or)
- Perl语言入门笔记 第十六章 进程管理
- [Java入门笔记] Java语言基础(四):流程控制
- Html - web 第一语言, 学习笔记(一) [入门级别]
- Perl语言学习笔记(二) 标量数据
- R语言入门——个人笔记
- R语言入门个人笔记(二)--包(package)的使用及RStudio的使用,加载包和数据集
- Perl 语言笔记
- Perl语言入门
- Perl语言入门:文件操作和异常处理初步
- 汇编语言入门学习笔记1