Perl语言总结

 

标量  $  $cents  一个独立的数值(数字或字串) 
数组  @  @large  一列数值,用编号做键字 
散列  %  %interest  一组数值,用字串做键字 
子过程  &  &how  一段可以调用的 Perl 代码 
类型团  *  *struck  所有叫 struck 的东西 
$answer = 42; # 一个整数
$pi = 3.14159265 # 一个"实"数
$pet = "Camel"; # 字串
$sign = "I ove my $pet"; # 带代换的字串
$cose = 'It cose $100'; # 不带代换的字串
$thence = $whence; # 另一个变量的数值
$salsa = $moles * $avocados; # 一个胃化学表达式
$exit = system("vi $file"); # 一条命令的数字状态
$cwd = `pwd`; # 从一个命令输出的字串

数组 @varray = ("0","1","a","b","c");
     $varray[0]="0";
对象 %vobject = ("Sun" => "Sunday",
                 "Mon" => "Monday",
                 "Tue" => "Tuesday",
                 "Wed" => "Wednesday",
                 "Thu" => "Thursday",
                 "Fri" => "Friday",
                 "Sat" => "Saturday" );
     $vobject{"Sun"} = "Sunday";
     $vobject{"other"} = ["Leah", "Rachel", "Bilhah", "Zilpah"];
     $vobject{"Jacob"} = {
              "Leah"   => ["Reuben", "Simeon", "Levi", "Judah", "Issachar", "Zebulun"],
              "Rachel" => ["Joseph", "Benjamin"],
              "Bilhah" => ["Dan", "Naphtali"],
              "Zilpah" => ["Gad", "Asher"],};

open(SESAME, "filename")                # 从现存文件中读取
open(SESAME, "<filename")               # (一样的东西,明确地做)
open(SESAME, ">filename")               # 创建文件并写入
open(SESAME, ">>filename")              # 附加在现存文件后面
open(SESAME, "| output-pipe-command")   # 设置一个输出过滤器
open(SESAME, "input-pipe-command |")    # 设置一个输入过滤器
close(SESAME)
读行操作符 <> 来读入一行
open(GRADES, "grades") or die "Can't open grades: $!n";
    while ($line = <GRADES>) {
     ($student, $grade) = split(" ", $line);
     $grades{$student} .= $grade . " ";
    }
等于        ==   eq   如果 $a 等于 $b 返回真 
不等于      =    ne   如果 $a 不等于 $b 返回真 
小于        <    lt   如果 $a 小于 $b 返回真 
大于        >    gt   如果 $a 大于 $b 返回真 
小于或等于  <=   le   如果 $a 不大于 $b 返回真 
比较        <=>  cmp  相等时为 0,如果 $a 大为 1 如果 $b 大为 -1 
-e $a  存在      如果在 $a 中命名的文件存在则为真 
-r $a  可读      如果在 $a 中命名的文件可读则为真 
-w $a  可写      如果在 $a 中命名的文件可写则为真 
-d $a  目录      如果在 $a 中命名的文件是目录则为真 
-f $a  文件      如果在 $a 中命名的文件是普通文件则为真 
-T $a  文本文件  如果在 $a 中命名的文件是文本文件则为真

--循环控制--
if ($city eq "New York") {
}
elsif ($city eq "Chicago") {
}
else {
}
unless ($destination eq $home) { print "I'm not going home.en"; }
while (@ARGV) { process(shift @ARGV);}
foreach $user (@users) { }
foreach $key (sort keys %hash) { }
last , next (类似break,continue)
--END--

while ($line = <FILE>) {
   if ($line =~ /http:/) {
    print $line;
   }
}
=~ 符号(模式绑定操作)
在 $line 中寻找匹配正则表达式"http:",如果发现了该表达式,操作符返回真并且执行代码段
while (<FILE>) { print if /http:/; }
缺省的变量$_


正则表达式
空白  [tnrf]  s 
词  [a-zA-Z_0-9]  w 
数字  [0-9]  d 
+:代表 {1,},意思为"最少一次".
*:表示 {0,},表示"零次或多次".
?:表示 {0,1},表示"零或一次".

$_="larry:JYHtPh0./NJTU:100:10:Larry Wall:/home/larry:/bin/tcsh"
print /.+:/;

并且想用 /.+:/ 来匹配“larry:”,但是因为 + 是贪婪的,这个模式将匹配一直到 /home/larry: 为止。因为它尽可能多地匹配直到最后出现的一个冒号。有时候你可以使用反向的字符类来避免上边的情况,比如使用 /[^:]+:/,表示匹配一个

print reverse sort map {lc} keys %hash;


引起构造
常用  通用  含义       替换 
' '   q//   文本字串   否 
" "   qq//  文本字串   是 
` `   qx//  执行命令   是 
()    qw//  单词数组   否 
//    m//   模式匹配   是 
s///  s///  模式替换   是 
y///  tr/// 字符转换   否 
" "   qr//  正则表达式 是 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值