小小程序員

          小小程序員
          隨筆 - 5, 文章 - 0, 評(píng)論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          perl記事本

          perl記事本

          1. 'yu' x 3    #  print yuyuyu

          2.print "yu jian ${age}s" # 加{}  促使變量不會(huì)變成$ages

          3. 4 ** 2  #4的平方

          4.(1..5) #  -->(1,2,3,4,5)

          5.qw ( yu jian's book)  # 簡(jiǎn)潔,更少輸入

          6.($yu,$jian)=($jian,$yu) # 值互換

          7.($yu,$jian)=qw(yu jian) # 賦值

          8.@array=qw/yu jian/; #數(shù)組 

          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.如果數(shù)組為空 pop不會(huì)報(bào)錯(cuò),什么也不返回,直接返回undef

          11.push(@array,0)  # @array=(5,6,7,0)

          12.pop和push都操作數(shù)組末尾

          13.shift和unshift是對(duì)數(shù)組的開(kāi)始端操作

          14.$_  perl的默認(rèn)變量
          for(1...10){
              print $_;  # $_ = 1 or 2 or 3...
          }

          15.perl會(huì)正確處理上下文
          @people=qw{yu gao};
          @list=@people #得到列表
          $n=@people #得到人數(shù)2

          16.scalar @array #scalar 導(dǎo)致切換為標(biāo)量上下文
          @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> #在列表上下文中讀取標(biāo)準(zhǔn)輸入


          18.chomp 去掉所有的換行符 chmop(@lines)

          19.調(diào)用自定義方法  &methodName;

          20.sub max{
              if(@_!=2){  #判斷參數(shù)個(gè)數(shù)
                  print "waning!!!";
                  return -1;
              }
              my($m,$n); #創(chuàng)建新的所有變量
              ($m,$n)=@_; #將參數(shù)賦值給變量
              if($m > $n){$m}else{$n}
          }

          21.my($num)=@_ #獲取數(shù)組的第一個(gè)元素
              my $num=@_ #數(shù)組的數(shù)量

          22.use strice ; #強(qiáng)制使用一些嚴(yán)格的良好的程序語(yǔ)言規(guī)則

          23.sub division{
                  $_[0] / $_[1]; #第一個(gè)參數(shù)和第二個(gè)參數(shù)
          }

          24.@ARGV=qw# file1 file2 #;# 強(qiáng)制讓磚石操作符讀取這兩個(gè)文件
          while(<>){
              chomp;
              print "It was $_\n":
          }

          25.printf "Hello, %s; your password in %d days!\n",$user,$days;#格式化輸出
          %d 整數(shù) %g 浮點(diǎn)數(shù)

          27.die處理錯(cuò)誤輸出

          28.讀取文件
          open CONFIG,"c:/test.txt";
          while(<CONFIG>){
          print $_."\n";
          }

          29. say == print  xxxx ."\n"  # say  相當(dāng) 等于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函數(shù)
          while( ($key,$value)=each %family_name ){
                  print "$key => $value\n";
          }
          exists函數(shù)
          if(exists $family_name("dino")){

          }
          delete函數(shù)
          delete $family{"fred"};

          32.\1,\2使用反向引用
          $_=""abba;
          if(/(.)\1/){#匹配到 bb
              print "it matched";
          }

          33. \d = [0-9]
          \w = [A-Za-z0-9_]
          [^\d] 非數(shù)字
          [^\w]非詞
          [^\s]非空白字符

          34./yes/i  # /i 不區(qū)分大小寫

          35./s 匹配任意字符 , 不包括換行

          36./x運(yùn)行加入空白,便于閱讀理解

          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.從命令行進(jìn)行在線編輯
          perl -p -w -e "s/ran/ra/g" fred.dat
          -p 打印  -n 去掉自動(dòng)打印  -w 打開(kāi)警告選項(xiàng)  -e 表示后面更得是代碼,而不是普通的參數(shù)

          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.智能匹配對(duì)應(yīng)不同德操作數(shù),不同德處理方式
          %a ~~ %b         哈希的鍵是否一致
          %a ~~@b          至少%a中的一個(gè)鍵在列表@b之中
          %a ~~ /Fred/     至少一個(gè)鍵匹配給定的模式
          %a ~~ 'Fred'      哈希中某一指定鍵$a{'Fred'} 是否存在
          @a ~~ /Fred/     有一個(gè)元素匹配給定的模式
          @a ~~ 123        至少有一個(gè)元素轉(zhuǎn)化為數(shù)字后事123

          $name ~~ undef  $name確實(shí)尚未定義

          46.system 啟動(dòng)子進(jìn)程
          system "date";

          14.my $tarfile="some*.tar";
          my @dirs=qw(fred|flinet<bar&rubble> betty);
          system "tar"."cvf",$tarfile,@dirs;  帶參數(shù)的系統(tǒng)命令調(diào)用

          47.system的所有語(yǔ)法對(duì)exec都適用
          執(zhí)行exec類似goto語(yǔ)句,跳轉(zhuǎn)到另個(gè)進(jìn)程進(jìn)行執(zhí)行,當(dāng)前perl進(jìn)程會(huì)關(guān)閉
          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或者其他父進(jìn)程

          49.my $now =`date`;
          print "The time is now $now";
          魔力反引號(hào)調(diào)用進(jìn)程

          50.perl -p -i.old -e "s/try//g" test.txt 替換文件中的內(nèi)容,重新寫入文件, 原文件備份為old后綴的文件.
          windows下要用雙引號(hào)

          51.

          posted on 2010-05-06 14:29 余堅(jiān) 閱讀(255) 評(píng)論(0)  編輯  收藏 所屬分類: 腳本語(yǔ)言


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 原平市| 那曲县| 南充市| 依兰县| 武乡县| 琼中| 枣阳市| 定兴县| 汕尾市| 平塘县| 四子王旗| 广丰县| 丹江口市| 泸定县| 华宁县| 湄潭县| 剑河县| 施甸县| 贺州市| 江口县| 红安县| 麻城市| 辽宁省| 翁牛特旗| 西乌珠穆沁旗| 咸丰县| 垣曲县| 榆林市| 治县。| 城步| 华阴市| 襄垣县| 临高县| 新巴尔虎左旗| 手游| 武川县| 安阳市| 衡阳县| 剑川县| 宽城| 黄山市|