經常要講一個檔案分割成許多小檔案,如果每次判斷後要進行“開啟檔案控制代碼—》寫入資料—》關閉檔案控制代碼”,這樣重複的開啟、關閉檔案控制代碼是很耗時間的。進程經常會處於“S”睡眠狀態。如果同時開啟多個檔案,再判斷要寫入哪個檔案,則可以節省CPU等待的時間。for my $i (0..99){ $o="OUT".$i; open $o,">test.$i" or die $!; print $o "test"; close
方法一: 5.8版本 使用Switch包 use Switch; switch ($val) { case 1 { print "number 1" } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (@array) { print "number
perl 中的vars是perl中的一個pragma(先行編譯指示符),專門用來預定義全域變數,這些預定義後的全域變數在qw()列表中,在整個引用perl檔案中皆可使用,即便使用use strict也不會報錯:use strict ;$str = "hello world!\n" ;報錯資訊:Global symbol "$str" requires explicit package name at ~vars.pl line 3.Execution of ~vars.pl aborted
這是 ABC Perl Programming 之後的第二部分。名稱改成現在這樣是因為一本書,叫做 Higher Order Perl 。這本書的作者提到很多 Perl 的程式員在用 Perl 寫 C 的程式。這是一件很不幸的事情。當然了,所謂高手可以用任何方法做任何事情。但是,既然是在學習一個語言,至少要有三分樣吧。下面是 Higher-Order Perl 這本書前言的第一段。A well-known saying in the programming racket is that a
1. List and Array. 本書中所講的List是一種資料結構,Array是Perl中用來存放List的資料類型。大部分情況下,這兩個單詞可以互換,意思是一樣的。和C不一樣 的是,Perl的Array不用定義元素的類型,也就是說,Perl中的Array中的每個元素可以是Number,也可以是String,元素的類型沒 必要都一樣。和C相同的就是,對Array的訪問都是通過下標進行的,第一個元素的數組下標是0。 2. Perl中的Array用起來和C中的沒什麼區別: $fred[0]
原文發表在網易部落格 2010-11-19 13:10:11 第1題根據輸入的人名列印其姓氏#!perl -w #getfamilyname use strict; my %nameTable=("fred"=>"flintstone","barney"=>"rubble","wilma"=>"flintstone"); print "input person name,and the program will print his familyname.\
例子:假設在fred and barney went bowling last night 上使用/fred.+barney/進行匹配。我們知道Regex將匹配上,下面我們具體的講解這一個過程:首先,子模式fred 將匹配其對應的字串。模式的下一部分是.+,它將匹配除了分行符號之外的任一字元,次數大於等於一。但,由於加號(+)是貪婪的;它將儘可能的進行匹配。因此,它將匹配剩餘的所有字串,包括night。現在對banrey