Perl中的駱駝精神(三)

來源:互聯網
上載者:User

標籤:

Perl中讀取標準輸入:<STDIN>

           foreach (<STDIN>)  { print "I saw $_";}

鑽石操作符<>:它的參數來源於@ARGV數組。

           先檢查@ARGV數組,如果為空白,則從標準輸入資料流輸入。@ARGV的值可以來自命令列,也可以自己賦值。

           ./program  fred  barney betty     #@ARGV的值便是命令列後的三個檔案。

           while (<>)   {  chomp;   print "It‘s was $_ that I saw";}

 

Perl中的標準輸出:print。輸出多項時,可以通過加","來隔開,各自用雙引號括起。

            用print輸出數組時。print @array;  #會輸出@array中所有元素,以空格分隔。相當於數組插入。

            用printf格式化輸出。%g/%d/%s/     printf  “The items are:\n”.("%10s\n"[email protected]), @items;  #定義多個%s

            注意print加括弧時是顯式的函數調用,是列表上下文,返回列表。不加括弧時,返回標量0/1。

            print <>;     將輸入直接輸出。

 

檔案控制代碼:代表Perl進程與I/O之間聯絡的名稱,而不是說一個檔案的名稱,

Shell中的檔案I/O流:      ./program  <dino  >wilma          #表示從檔案dino輸入,輸出到wilma,Perl程式仍然是輸入STDIN,

                                                                                     輸出到STDOUT。剩下的部分由Shell來處理。

                                   netstat  |  ./your_program    2>/tmp/my_errors   #對STDERR重新導向。

 

裸字(bareward)檔案控制代碼:  open  CONFIG,  ‘< dino‘;     #開啟dino檔案作為輸入,檔案控制代碼的操作符叫CONFIG。

                      Perl中預設開啟的檔案控制代碼是輸入。‘>‘輸出,‘>>‘追加在某個已經存在的檔案後。注意將檔案用單引號括起來。

                                      close CONFIG;                    #關閉檔案控制代碼

 

使用標量變數的檔案控制代碼:一般先用詞法變數my來定義。

                     my  $rocks_fh;

                     open $rocks_fh,  ‘>‘, ‘file.txt‘;               #一般用尾碼_fh來表示檔案控制代碼。

 

在Perl中可以使用die和warning來,分別結束當前Perl進程,和輸出warning到STDERR。

                       die "Cannot create LOG flie:$!"      #$!表示進行系統調用時的傳回值。Perl預設會將Perl檔案名稱和行號加在log中。

                       die "Cannot create LOG flie:$! \n"     #加了分行符號後,Perl不會再加入檔案名稱和行號。  

 

使用檔案控制代碼來輸入時:直接在<>括弧中加入控制代碼名。

                       while (<PASSWD>)   {......}       

使用檔案控制代碼來輸出時:在print/printf 後加入檔案控制代碼名。但是不要加逗號,否則會當做需要輸出字串的字數的一部分。或者直接用

                      花括弧{}將檔案控制代碼的名字括起來。

                       print  {LOG}  "HAHA";   

 

改變預設的檔案控制代碼,使用select關鍵字。 select LOG;   select STDERR;

從Perl5.10開始,可以使用say來代替print。say會自動在輸出的字元結束添加分行符號。

Perl中的駱駝精神(三)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.