關於perl的檔案讀取

2021-05-18 07:02:40 字數 2140 閱讀 8286

關於

perl

的檔案讀取

perl

語言操作檔案是很常使用的操作,本文將介紹讀取檔案的一點小技巧。

本文將介紹兩種讀取檔案的方法:l使用

perl

的內建函式

readline;

l另外一種就是使用檔案控制代碼直接操作""。

1.使用readline

readline expr

readline

從檔案控制代碼中讀取資料,在標量環境中每一次從檔案中讀取一行記錄,直到檔案最後;在列表環境中,一次性將所有的檔案記錄全部讀取。注意,我們可以使用「

$/」來一次性的讀取檔案的所有記錄。

當「$/

」的值是

undef

時,readline

返回檔案中所有的行。

readline

實現了""

操作符的功能,當然你也可以直接的使用""。

例如下面的程式:

$line = ;

$line = readline(*stdin);# same thing

當readline

遇到系統錯誤時,可以使用

$!來返回錯誤,這在

tty和

socket

錯做的時候很有用。例如:

for (;;)

# ... }

下面是例子:

**

#!/usr/bin/perl

usestrict;

usewarnings;

my$

line;

openfh

, "< f://gan//1234.log";

#$/ = undef;

while(

$line

= readline fh )

$_=

$line;

s//s*$//g;

s/^/s*//g;

if( $_

eq "" )

print$_,

"/n";

}

close(

fh);

f://gan//1234.log

檔案中的內容:

我們主要關注它的檔案格式

perl

語言很強大

在檔案操作中表現的非常優秀。

(1)zzzzzzzzz

(2)*********

所以,我們要好好的把它學習好!

執行結果

perl

語言很強大

在檔案操作中表現的非常優秀。 (

1)zzzzzzzzz (

2)*********

所以,我們要好好的把它學習好!

**分析,我們從執行的結果可以看出,檔案的格式變化了。在分析**,首先來看黃色標記的**

s//s*$//g;

s/^/s*//g;

使用的是

s///

,它的作用就是去除一行前端和尾部的空格。再來看藍色標記的**

if( $_

eq "" )

它的作用就是去除空行。最後再看粉紅色標記的**

#$/ = undef;

在這裡我們把它登出掉,如果去除登出程式執行的結果就是如下所示:

perl

語言很強大

在檔案操作中表現的非常優秀。

(1)zzzzzzzzz

(2)*********

所以,我們要好好的把它學習好!

原因就是當

#$/ = undef

;得時候

readine

就會執行在標量環境中,將檔案中所有的行當做一行全部讀出。

Perl開啟讀取檔案

在perl中可以用open或者sysopen函式來開啟檔案進行操作,這兩個函式都需要通過乙個檔案控制代碼 即檔案指標 來對檔案進行讀寫定位等操作。下面以open函式為例 1 讀 open 檔案控制代碼,檔名 open 檔案控制代碼,檔名 前提檔案必須已經存在,否則會返回0,出錯資訊在 中。2 寫 o...

Perl檔案讀取的經典用法分享

用open 函式開啟檔案 開啟檔案的常用方法是 複製 如下 open fh,filename or die couldn t open filename for reading open 函式通常帶有兩個引數,第乙個為檔案控制代碼,用於指向開啟的檔案,第二個引數是檔名及模式 檔案的開啟模式 的混合體...

讀取excel檔案(使用perl處理)

做了乙個簡單的處理excel檔案的perl程式,批量讀取其中的資料將其轉換csv檔案 如下 usr local bin perl xlstocsv ver 0.2 xls檔案轉換csv mail use strict use warnings use spreadsheet parseexcel u...