一旦你有個包含了整個串的變量,你可以使用正則表達式,對整個文件進行操作,
而不是對文件中的某個塊進行操作。有兩個有用的正則表達式標記/s和/m。一般,Perl的
正則表達式對行進行處理,你可以這樣寫:
它沒有找到“browngrass”,這是因為$ 僅在串尾尋找其匹配, (或者在串結束
前的一行)。如果在包含很多行的串中,用"^" 和"$"來匹配,, 我們可以使用 /m ("multiline") 選項:
如果我們從文件中讀入“1981”,$_ 將包含“1981\n”。正則表達式中的句點
匹配“8”和“1”, 而不匹配“\n”。這裡正需要這樣做,因為換行符不是日期的組成部分。
對一個包含很多行的串,我們也許要提取其中的大的塊,這些塊可能會跨越行分隔符。
在這種情況下,我們可以使用 /s 選項,並用句點來匹配除了換行符以外的所有字符。
此處,我用了{}來表示正則表達式的起始和結束,而不用斜槓,所以,我就可以
告訴 Perl我正在匹配,起始字符為"m",結束字符為"s"。你
可以把/s 和/m 選項組合使用:
有兩種方法打開文件:open()函數的特點是快速簡捷,而sysopen()函數功能強
大而復雜。通過 操作符,可以讀入一個記錄,$/ 變量可以讓你控制記
錄是什。如果你打算把很多行的內容讀入到一個串中,不要使用忘記/s和/m 這兩
個正則表達式標記。