To the pursuit of truth.
我也算学了基本脚本语言的人,Au3、Pyhon、PHP、JavaScript、Shell 都用过,但这个家伙是有点让我膛目,语法简直简练到不能再简练了。一下午的时间看了看他的基础语法和示例,做一下记录。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
#!perl# 这是一行 Perl 的注释print "Hello Perl";=pod这是 perl 的多行注释这是 perl 的多行注释这是 perl 的多行注释=cut# 基础变量$var1 = 123456; # 十进制$var2 = 047; # 八进制$var3 = 0x1f; # 十六进制# 浮点型,不是非常精准$var4 = 9.01e+21 + 0.01 - 9.01e+21;print ("first value is ", $var4, "\n");# 字符串中变量替换,仅支持在双引号中使用$number = 11;$text = "This text contains the number $number\n";print $text;# 单引号可以跨多行,但不能使用转移和变量替换$text1 = "This is twolines of text";print $text1;# 字符串和数值互相转换$string = "43";$number = 100;$result = $string + $number; # $result = 71print $result;$result = "Hello" * 5; # $result = 0print ("Hello * 5 = ", $result, "\n");$result = "12a34" + 1; # $result = 13print ("12a34 + 1 = ", $result, "\n");# 字符串比较和逻辑操作符if ($text eq $text1) { print "text = text1!\n";} elsif ($var1 > $var2) { print "$var1 > $var2! \n";} else { print "error!";}# 字符串自增$stringvar = "abc";$stringvar++;print $stringvar; # print abd$stringvar = "abcZZZ";$stringvar++;print $stringvar; # print abdAAAprint "\n";# 字符串拼接$newstring = "potato" . "head";print $newstring, "\n"; # potatohead$newstring = "t" x 5;print $newstring, "\n"; # ttttt# 逗号运算符$val = 26;$result = (++$val, $val + 5); # $result = 32print $result, "\n";# 数组变量@array = (1, 2, 3);$scalar = $array[0];$array[3] = 5; # now @array is (1,2,3,5)$scalar = $array[4]; # now $scalar = null$array[6] = 17; # now @array is (1,2,3,5,"","",17)# 用数组给列表赋值@list1 = (2, 3, 4);@list2 = (1, @list1, 5);# @list = (1,2,3,4,5)# 用数组给普通多个变量赋值@array = (5, 7, 11);($var1, $var2) = @array; # $var1 = 5, $var2 = 7, 11 被忽略print ("var1 = $var1, var2 = $var2\n");@array = (5, 7);($var1, $var2, $var3) = @array; # $var1 = 5, $var2 = 7, var3 = ""print ("var1 = $var1, var2 = $var2, var3 = $var3\n");# 字符串中的方括号和变量替换print ("\$array[0] = $array[0]\n");# 列表范围@number = (1..10);print "@number\n";@day_of_month = ("01".."31");print "@day_of_month\n";$fred = "Fred";print (("Hello, " . $fred . "!\n") x 2);# 子数组@array = (1, 2, 3, 4, 5);@subarray = @array[0, 1]; # @subarray = (1, 2)@subarray2 = @array[1..3]; # @subarray2 = (2, 3, 4)@array[0, 1] = ("string", 46); # @array = ("string", 46, 3, 4, 5)@array[0..3] = (11, 22, 33, 44); # @array = (11, 22, 33, 44, 5)@array[0..2] = @array[3, 4]; # @array = (44, 5, "", 44, 5)print "@array\n";@array[1, 2] = @array[2, 1]; # 可用于交换元素print "@array\n";# 数组的库函数@array = ("this", "is", "a", "test");@array2 = sort(@array);print "@array2\n";@array2 = reverse(@array);print "@array2\n";@array2 = reverse sort (@array);print "@array2\n";@list = ("rabbit", "12345", "quertz"); # rabbi 1234 quertchop (@list);print "@list\n";$string = join("", "My", "name", "is", "Jia Deng");print "$string\n"; # MynameisJia Deng@list = ("words", "and");$string = join("::", @list, "colons");print "$string\n"; # words::and::colons@spt = split("::", $string);print "@spt\n"; # words and colons# 条件判断if ( "aa" eq "aa" ) { print "==\n";} else { print "!=\n";}# 循环$idx = 1;while ($idx <= 100) { print "$idx\t"; $idx++;}print "\n";until ($idx <= 1) { print "$idx\t"; $idx--;}print "\n";# 类 C 语言 break 和 continue$i = 0;while ($i < 100) { if ($i == 20) { # 到 20 停止循环 last; } print "$i\t"; $i++;}print "\n";$i = 0;while ($i < 30) { if ($i == 20) { # 将跳过 20 $i++; next; } print "$i\t"; $i++;}print "\n\n";# for@list = (1, 2, 3, 4, 5);foreach $temp (@list) { if ($temp == 2) { $temp = 20; } print "$temp\t";}print "\n";# 单行条件print ("\@list length = " . @list . "\n") if (@list < 10);# 关联数组%fruit = ("apples" => 17, "bananas" => 9, "oranges" => 100);foreach (keys(%fruit)) { print ("$_ = $fruit{$_}\t");}print "\n";# 删除一个关联数组的元素delete $fruit{apples};foreach (keys(%fruit)) { print ("$_ = $fruit{$_}\t");}print "\n";# each() 遍历关联数组%records = ("Maris", 61, "Aaron", 755, "Young", 511);while (($key, $value) = each(%records)) { print ("$key => $value\t");}