在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. 单引号字符串中的\n不会被当做换行符处理。 如:'\'\\' --> '\ 。 2. 双引号 字符串联 "Hello"."World"."\n" --> HelloWrold 换行; 字符串重复操作 "fred"×3 --> "fredfredfred"; 大小写 "\l","\L" --> 小写 ; "\u","\U" --> 大写 ; "\E" 结束。 3. 字符串运算 == eq 相等 != ne 不等 < lt 小于 > gt 大于 <= le 小于或等于 >= ge 大于或等于 4. 用户输入 <STDIN> 5. chomp函数:去掉文本的"\n"换行符。读写文件时,要去掉换行符。 如:chomp($text<STDIN>); 6. 单行注释:# ; 多行注释以 "=pod"开始,"=cut" 结束。 7. undef: 没有值时,表现为0或空字符串。 8. defined函数: 为undef时,返回false,其余返回true。 9. x 输出遍数。如:print "love" x 3 -->lovelovelove. 10. 特殊数组索引:"$#rocks" ,最后一个元素索引。 11. qw简写,代替 "" 功能。 如:qw(freds bany wilad dino); 12. @rocks=qw /break slasle labv/; #给数组赋值。 @copy=@qwarry; #将一个数组拷贝到另一个数组里。 13. pop:末尾取出元素;push:将一个或一列元素加在末尾。 如:pop(@array); push(@array,@others); #将@others添加到@array末尾。 14. shift 和 unshift 对数组首操作。 shift:取出首元素。unshift:将一个或一列加在首部。 15. 当把email地址插入双引号时,$email="fred\@bedrock.edu"; $email='[email protected]'; 16. perl最常用的默认变量:$_ 。 如: foreach(1..10){ print "I can $_!\n"; } 17. foreach控制结构 如: foreach $rock(qw/break Slee lawer/){ print "One rock is $rock . \n"; #打印数组 } 18. reverse 逆转操作,将一串列表按相反的顺序返回。 如: @fred=6..10; @bareny=reverse(@fred); #@bareny="10,9,8,7,6". 19. sort:将输入的一串列表根据内部的字符顺序进行排序。 如:ASCII字符串 @rocks =qw/breaks sholer rubble gertdned/; @sorted=sort(@rocks); 20. 强制转换成标量,context,可使用 scalar。 如:print "I have",scalar @rocks,"rocks!\n";输出为数字。 21. <STDIN>在列表context中: chomp(@line=<STDIN>); #读入所有行,不包括换行符。 文件输入完成时:linux/MACOS x,用 ctrl+d 结束;DOS/Windows, 用 ctrl+z 结束。 22. 调用子程序时,返回值为最后一个被计算的表达式。 @_ 是子程序的一个私有变量。 可以使用“my”创建子程序的私有变量,也可以在if ,untile ,foreach 块中使用。 如: my($fred,$bread); #定义两个私有变量。 如果新的私有变量没有被赋值的话,标量变量 会自动赋值为 undef ;数组变量 赋值为 空列表。 23. 使用strict Pragma 严格检查某代码;use strict 迫使采用更严格的检测。 24. 调用子程序 & 可省。 如: sub divsion{ $_[0]/$_[1]; } my $quotient=divsion 355, 113; #调用,同 my $quotient=&divsion(355,113); 25. 严重错误和 die 函数 如: if(!open LOG,">>logfile"){ die "Cannot create logfile:$_!"; #$_ 输出系统错误信息 } 一般,0表示正常;非0表示失败。常见的:1-->命令行中语法错误; 2--> 运行错误 ; 3--> 没有找到匹配文件。 26. @ARGV 含义是包含了程序从命令行得到的所有参数。输入。 27. 复制文件: system('cp -r ./filea.txt ./map'); #将文件.txt复制到map文件夹下 29. 读文件: open(FILE,"file.txt"); # FILE 为文件句柄。 my $record; while($record=<FILE>){ print ("file record is :$record\n"); } close(FILE); 30. 写文件:open(FILE1,">write.txt"); syswrite(FILE1,"I konw it ! \n"); #将 "I konw it!"写入文件。 close(FILE1); 注:> 覆盖写入;>> 追加写入。 31. 创建文件夹:mkdir(hello,0777)||die "not create!\n"; 创建文件: unless(-e "name.txt"){ open(FILE2,">name.txt") or &out_err("not create!\n"); } 删除文件:unlink("name.txt"); 创建目录(可多级):mkpath(directoy,1,0711); 删除目录:rmtree(directoy,1,1); 删除文件夹:rmdir("hello")||die "not delete"; 32. 数据库:windows下安装DBD:->cmd 输入 ppm install DBD::mysql 33.数据库连接: use DBI; my $dbh=DBI->connect("DBI:mysql:database=数据库;host=localhost;port:3308","用户名","密码",{'RaiseError'=>1}); my $sth=$dbh->prepare("select * from asset"); $sth->execute(); while(my $ref=$sth->fetchrow_hashref()){ print "$ref->{'id'}\t". "$ref->{'name'}\n"; } $sth->finish(); $dbh->disconnect(); 34.哈希:my %last_name=( "fred"=>"finished", "dion"=>"undef", "barney"=>"rubble" ); 35. keys 和values 函数 my %hash=("a"=>1,"b"=>2,"c"=>3); my @k=keys %hash; #得到key值 my @v=values %hash; #得到values值 注: @k和@v中的"a","b","c" 的顺序可能不同,但是@k和@v还是一一对应的。如"b"=>2,可能在第三位。 36. each函数:迭代hash中的每个元素。 如:while(($key,$values)=each %hash){ print "$key=>$values\n"; } 37. exists 函数: if(exists $books{$dino}){ }; delete函数: delete $books{$dino}; #删除 38. 大小写转换: $_="I saw Barney with Fred."; 大写:S/(fred)|barney/\U$1/gi; #BARNEY 小写:S/(fred)|barney/\L$1/gi; #barney 39.split操作:分割 @fields =split /separtor/,$string; 如: @fileds=split/:/,"abc:def:d:h"; join粘合函数: my $result = join $glue,@pieces; 如:my $x=join ":",4,5,6,7,8; # 4:5:6:7:8 40. 控制条件 unless 除非条件为真,否则执行块中代码。 unless($fred=~/^[A-Z-]\W*$/i){ print "The $fred"; } until:与while相反,当条件为假时,重复执行。 41. $n=++$m; #先将变量加1,再取值; $n=$m++;#先取值,在加1. 42. last会立刻结束循环。 for,foreach,while,until,裸块。 next 跳到当前循环的最后面,next之后进入下一轮循环。 redo 调到当前循环的顶端,不进行条件表达式判断以及接着本次循环(可放到循环体后面)。 标签块: LINE:while(<>){ foreach(split){ last LINE if/__END__/; } } 43. 三元操作符:Express?if_true_exp : if_false_exp 44. localtime函数:时间转换 如:my $timestemp=1180630098; my $date=localtime $timestemp; 格式:my($sec,$min,$hour,$day,$mon,$year,$wdy,$yday,$isdst)=localtime $timestemp; my $now=gmtime; #得到当前时间 45. chdir 改变工作目录。 如:chdir "/etc" or die "cannot chdir to /etc:$! "; globbing:shell将每一个命令行中的任何的文件名模式转换成它所匹配的文件名。 如: my @all_files=glob "*"; my @pm_files=glob "*.pm"; my @all_files=<*>; 46. 目录句柄:打开:opendir 读入:readdir 关闭:closedir (用法与打开文件相似) 重命名: rename "old","new"; 改变文件或目录权限:chomd 。 如:chomd 0075,"fred","bamey"; chown :改变一批文件的所有者及所在的组。 如: defined(my $user=getpwnam "merlyn"); #getpwnam将名字转化为数字 defined(my $group=getgrnam "users"); #getgrnam将组名转化为数字 chown $user,$group,glob "/home/merlyn/*"; #返回文件个数 readlink:符号连接指向的地方。 如: my $perl =readlink "/usr/local/bin/perl"; 47. 使用索引寻找字符串:index $where =index($big,$small); #从0开始编号 rindex: 某个字符串最后出现的位置。 substr: $part = substr($string,$inintial_position,$length); #inintial_position:从0开始的编号的初始位置。length:字符串长度。string:父串 如: my $mineral=substr("Fred J.Flintstone",8,5); #得到"Flint" 替换: substr("hello ,world",0,5)="GoodBye"; #GoodBye,world 48. sprintf 格式化数据,返回值为被请求字符串,而非打印。 如:my $money=sprintf "%.2f",2.49997; #2.5049. eval 捕捉错误,放在$@中。 49. 使用grep在列表得到元素。 如:my @odd_number=grep{$_%2} 1..1000; 50. perl 目前遇到的安装模块:main::tail 1. 单引号字符串中的\n不会被当做换行符处理。 如:'\'\\' --> '\ 。 2. 双引号 字符串联 "Hello"."World"."\n" --> HelloWrold 换行; 字符串重复操作 "fred"×3 --> "fredfredfred"; 大小写 "\l","\L" --> 小写 ; "\u","\U" --> 大写 ; "\E" 结束。 3. 字符串运算 == eq 相等 != ne 不等 < lt 小于 > gt 大于 <= le 小于或等于 >= ge 大于或等于 4. 用户输入 <STDIN> 5. chomp函数:去掉文本的"\n"换行符。读写文件时,要去掉换行符。 如:chomp($text<STDIN>); 6. 单行注释:# ; 多行注释以 "=pod"开始,"=cut" 结束。 7. undef: 没有值时,表现为0或空字符串。 8. defined函数: 为undef时,返回false,其余返回true。 9. x 输出遍数。如:print "love" x 3 -->lovelovelove. 10. 特殊数组索引:"$#rocks" ,最后一个元素索引。 11. qw简写,代替 "" 功能。 如:qw(freds bany wilad dino); 12. @rocks=qw /break slasle labv/; #给数组赋值。 @copy=@qwarry; #将一个数组拷贝到另一个数组里。 13. pop:末尾取出元素;push:将一个或一列元素加在末尾。 如:pop(@array); push(@array,@others); #将@others添加到@array末尾。 14. shift 和 unshift 对数组首操作。 shift:取出首元素。unshift:将一个或一列加在首部。 15. 当把email地址插入双引号时,$email="fred\@bedrock.edu"; $email='[email protected]'; 16. perl最常用的默认变量:$_ 。 如: foreach(1..10){ print "I can $_!\n"; } 17. foreach控制结构 如: foreach $rock(qw/break Slee lawer/){ print "One rock is $rock . \n"; #打印数组 } 18. reverse 逆转操作,将一串列表按相反的顺序返回。 如: @fred=6..10; @bareny=reverse(@fred); #@bareny="10,9,8,7,6". 19. sort:将输入的一串列表根据内部的字符顺序进行排序。 如:ASCII字符串 @rocks =qw/breaks sholer rubble gertdned/; @sorted=sort(@rocks); 20. 强制转换成标量,context,可使用 scalar。 如:print "I have",scalar @rocks,"rocks!\n";输出为数字。 21. <STDIN>在列表context中: chomp(@line=<STDIN>); #读入所有行,不包括换行符。 文件输入完成时:linux/MACOS x,用 ctrl+d 结束;DOS/Windows, 用 ctrl+z 结束。 22. 调用子程序时,返回值为最后一个被计算的表达式。 @_ 是子程序的一个私有变量。 可以使用“my”创建子程序的私有变量,也可以在if ,untile ,foreach 块中使用。 如: my($fred,$bread); #定义两个私有变量。 如果新的私有变量没有被赋值的话,标量变量 会自动赋值为 undef ;数组变量 赋值为 空列表。 23. 使用strict Pragma 严格检查某代码;use strict 迫使采用更严格的检测。 24. 调用子程序 & 可省。 如: sub divsion{ $_[0]/$_[1]; } my $quotient=divsion 355, 113; #调用,同 my $quotient=&divsion(355,113); 25. 严重错误和 die 函数 如: if(!open LOG,">>logfile"){ die "Cannot create logfile:$_!"; #$_ 输出系统错误信息 } 一般,0表示正常;非0表示失败。常见的:1-->命令行中语法错误; 2--> 运行错误 ; 3--> 没有找到匹配文件。 26. @ARGV 含义是包含了程序从命令行得到的所有参数。输入。 27. 复制文件: system('cp -r ./filea.txt ./map'); #将文件.txt复制到map文件夹下 29. 读文件: open(FILE,"file.txt"); # FILE 为文件句柄。 my $record; while($record=<FILE>){ print ("file record is :$record\n"); } close(FILE); 30. 写文件:open(FILE1,">write.txt"); syswrite(FILE1,"I konw it ! \n"); #将 "I konw it!"写入文件。 close(FILE1); 注:> 覆盖写入;>> 追加写入。 31. 创建文件夹:mkdir(hello,0777)||die "not create!\n"; 创建文件: unless(-e "name.txt"){ open(FILE2,">name.txt") or &out_err("not create!\n"); } 删除文件:unlink("name.txt"); 创建目录(可多级):mkpath(directoy,1,0711); 删除目录:rmtree(directoy,1,1); 删除文件夹:rmdir("hello")||die "not delete"; 32. 数据库:windows下安装DBD:->cmd 输入 ppm install DBD::mysql 33.数据库连接: use DBI; my $dbh=DBI->connect("DBI:mysql:database=数据库;host=localhost;port:3308","用户名","密码",{'RaiseError'=>1}); my $sth=$dbh->prepare("select * from asset"); $sth->execute(); while(my $ref=$sth->fetchrow_hashref()){ print "$ref->{'id'}\t". "$ref->{'name'}\n"; } $sth->finish(); $dbh->disconnect(); 34.哈希:my %last_name=( "fred"=>"finished", "dion"=>"undef", "barney"=>"rubble" ); 35. keys 和values 函数 my %hash=("a"=>1,"b"=>2,"c"=>3); my @k=keys %hash; #得到key值 my @v=values %hash; #得到values值 注: @k和@v中的"a","b","c" 的顺序可能不同,但是@k和@v还是一一对应的。如"b"=>2,可能在第三位。 36. each函数:迭代hash中的每个元素。 如:while(($key,$values)=each %hash){ print "$key=>$values\n"; } 37. exists 函数: if(exists $books{$dino}){ }; delete函数: delete $books{$dino}; #删除 38. 大小写转换: $_="I saw Barney with Fred."; 大写:S/(fred)|barney/\U$1/gi; #BARNEY 小写:S/(fred)|barney/\L$1/gi; #barney 39.split操作:分割 @fields =split /separtor/,$string; 如: @fileds=split/:/,"abc:def:d:h"; join粘合函数: my $result = join $glue,@pieces; 如:my $x=join ":",4,5,6,7,8; # 4:5:6:7:8 40. 控制条件 unless 除非条件为真,否则执行块中代码。 unless($fred=~/^[A-Z-]\W*$/i){ print "The $fred"; } until:与while相反,当条件为假时,重复执行。 41. $n=++$m; #先将变量加1,再取值; $n=$m++;#先取值,在加1. 42. last会立刻结束循环。 for,foreach,while,until,裸块。 next 跳到当前循环的最后面,next之后进入下一轮循环。 redo 调到当前循环的顶端,不进行条件表达式判断以及接着本次循环(可放到循环体后面)。 标签块: LINE:while(<>){ foreach(split){ last LINE if/__END__/; } } 43. 三元操作符:Express?if_true_exp : if_false_exp 44. localtime函数:时间转换 如:my $timestemp=1180630098; my $date=localtime $timestemp; 格式:my($sec,$min,$hour,$day,$mon,$year,$wdy,$yday,$isdst)=localtime $timestemp; my $now=gmtime; #得到当前时间 45. chdir 改变工作目录。 如:chdir "/etc" or die "cannot chdir to /etc:$! "; globbing:shell将每一个命令行中的任何的文件名模式转换成它所匹配的文件名。 如: my @all_files=glob "*"; my @pm_files=glob "*.pm"; my @all_files=<*>; 46. 目录句柄:打开:opendir 读入:readdir 关闭:closedir (用法与打开文件相似) 重命名: rename "old","new"; 改变文件或目录权限:chomd 。 如:chomd 0075,"fred","bamey"; chown :改变一批文件的所有者及所在的组。 如: defined(my $user=getpwnam "merlyn"); #getpwnam将名字转化为数字 defined(my $group=getgrnam "users"); #getgrnam将组名转化为数字 chown $user,$group,glob "/home/merlyn/*"; #返回文件个数 readlink:符号连接指向的地方。 如: my $perl =readlink "/usr/local/bin/perl"; 47. 使用索引寻找字符串:index $where =index($big,$small); #从0开始编号 rindex: 某个字符串最后出现的位置。 substr: $part = substr($string,$inintial_position,$length); #inintial_position:从0开始的编号的初始位置。length:字符串长度。string:父串 如: my $mineral=substr("Fred J.Flintstone",8,5); #得到"Flint" 替换: substr("hello ,world",0,5)="GoodBye"; #GoodBye,world 48. sprintf 格式化数据,返回值为被请求字符串,而非打印。 如:my $money=sprintf "%.2f",2.49997; #2.5049. eval 捕捉错误,放在$@中。 49. 使用grep在列表得到元素。 如:my @odd_number=grep{$_%2} 1..1000; 50. perl 目前遇到的安装模块:main::tail |
请发表评论