[root@wx03 1]# cat a1.pl $arr=[1,2,3,4,5,6]; print $arr->[4]." "; $hash={a=>1,b=>2,c=>3}; print $hash->{b}." "; $sub = sub {return "aaaaaaaaa "}; print $sub; print " "; print &$sub; print " "; [root@wx03 1]# perl a1.pl 5 2 CODE(0x251fd20) aaaaaaaaa 复杂数据结构: [root@wx03 1]# cat a2.pl $wife{"Jacob"}=["Leah","Rachel","Bilhah","Zilpah"]; print $wife{"Jacob"}->[2]." "; [root@wx03 1]# perl a2.pl Bilhah [root@wx03 1]# cat a3.pl $kids_of_wife{"Jacob"} = { "Leah" => ["Reuben", "Simeon", "Levi", "Judah", "Issachar", "Zebulun"], "Rachel" => ["Joseph", "Benjamin"], "Bilhah" => ["Dan", "Naphtali"], "Zilpah" => ["Gad", "Asher"],}; print $kids_of_wife{"Jacob"}->{Rachel}->[1]." "; [root@wx03 1]# perl a3.pl Benjamin [root@wx03 1]# cat t1.pl $var=5; $var .=10; print $var." "; [root@wx03 1]# perl t1.pl 510 /// [root@wx03 1]# cat a5.pl %grades; open (GRADES ,test) || die; while (my $line=<GRADES>){ my ($student,$grade) = split (/s+/,$line); $grades{$student} .=$grade ." "; print $grades{$student}." "; }; use Data::Dumper; $str=Dumper(%grades); print "$str is $str "; [root@wx03 1]# perl a5.pl 123 123 456 $str is $VAR1 = 'abc'; $VAR2 = '123 456 '; [root@wx03 1]# cat test abc 123 abc 456 perl 中的真值: 1.除了""和"0"外,所有字符串都为true; 2.除0以外,所有数字都为true; 3.所有引用都为true; 4. 所有未定义值都为false 正则表达式: [root@wx03 1]# cat a7.pl $var1="a:"; $var2="aa:"; $var3=":"; if ($var1 =~/[a-zA-Z]+:/){print "ok1 "}; if ($var2 =~/[a-zA-Z]+:/){print "ok2 "}; if ($var3 =~/[a-zA-Z]+:/){print "ok3 "}; [root@wx03 1]# perl a7.pl ok1 ok2 [root@wx03 1]# + 是一个特殊字符,表示"我们前面的内容出现一次或多次" [root@wx03 1]# cat a8.pl $var1="a"; $var2="a1"; if ($var1 =~/a./){print "ok1 "}; if ($var2 =~/a./){print "ok2 "}; [root@wx03 1]# perl a8.pl ok2 .号表示任意单个字符 [root@wx03 1]# cat a9.pl $var1="a1"; $var2="1"; $var3="aaa1"; if ( $var1 =~ /a*1/ ){print "ok1 ";}; if ( $var2 =~ /a*1/ ){print "ok2 ";}; if ( $var3 =~ /a*1/ ){print "ok3 ";}; [root@wx03 1]# perl a9.pl ok1 ok2 ok3 * 表示前面的项出现0次或多次 perl 贪婪匹配: [root@wx03 1]# cat a10.pl $var="larry:abcdffwrwr:ddad:fsffsf34"; if ( $var =~/(.+:)/){print "$1 is $1 ";}; if ( $var =~/(.*?:)/){print "$1 is $1 ";}; [root@wx03 1]# perl a10.pl $1 is larry:abcdffwrwr:ddad: $1 is larry: .*? 取消贪婪匹配