麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

Perl文件句柄詳解

2020-06-04 20:31:10
字體:
來源:轉載
供稿:網友

在文件I/O中,要從一個文件讀取數據,應用程序首先要調用操作系統函數并傳送文件名,并選一個到該文件的路徑來打開文件。該函數取回一個順序號,即Perl文件句柄(filehandle),該Perl文件句柄對于打開的文件是唯一的識別依據。要從文件中讀取一塊數據,應用程序需要調用函數ReadFile,并將Perl文件句柄在內存中的地址和要拷貝的字節數傳送給操作系統。當完成任務后,在通過調用系統函數來關閉該文件。

除了你模仿唯我論者哲學家編寫一個人工智能程序,你的程序使用不和外界通訊的方法。在班級例子中的第三和四行,你將看到"GRADES",這是引用另一個Perl文件的數據類型,稱為據柄(filehandle)。一個句柄就是你給一個文件,設備,管套(socket)或管道的一個名字,以便幫助你記住你正處理的名字,并隱藏某些緩存等的復雜性。(在內部,句柄類似C++語言的流(streams),或BASIC中的I/O通道)句柄使你從不同的地方輸入和輸出給不同的地方都較容易。使Perl成為好語言的一個原因是它能和多個文件通訊并一次處理他們。對外部對象有好的符號名字是一個好語言的一個組成部分[1]。

其他使Perl是一個好語言的是:它是8位的,是可嵌入的,你能通過擴展模式在Perl中嵌入其他程序。它是簡明的,網絡上容易使用。環境上是清楚的,容易對話。你能以許多不同的方法引用它(就象前面看到的)。總之,語言本身不是如此嚴格的結構,以至于你不能使它超出你的問題。又回到TMTOWTDI。

你創建一個句柄,并通過open函數把它和一個文件聯結。open有兩個參數:句柄和你想與它聯結的一個文件名。Perl也給出一些預定義(和預打開的)句柄。STDIN是你程序的正常輸入通道,而STDOUT是你程序的正常輸出的通道。STDERR是一個附加的輸出通道,以便當把輸入轉為輸出時,程序能給出一些說明[2]。

一般地,這些句柄和你的終端聯結,所以你能輸入你的程序并能看到,但他們也可以和文件聯結。Perl能給你這些預定義句柄,因為你的操作系統已提供這些。在UNIX下,進程從他的父進程(一般是一個shell)繼承標準輸入,輸出和錯誤。一個shell的責任之一是建立這些I/O流,以便子進程不必考慮這些)。
既然你能為各種目的(輸入,輸出,管道)使用open函數創建句柄,你就必須能指明你要做什么。就象在UNIX命令行一樣,你給文件名簡單地加些字符。

代碼如下:
open(SESAME,"filename");#從已存在的文件讀
open(SESAME,"<filename");#顯式地,同上面
open(SESAME,">filename");#創建一個文件并對它寫
open(SESAME,">>filename");#對已有的文件接著寫
open(SESAME,"|output-pipe-command");#建立一個輸出過濾
open(SESAME,"input-pipe-command|");#建立一個輸入過濾

就象你看到的,你可以任意選名字。一旦打開句柄SESAME,它就能被用于存取文件或管道,直到它被顯式地關閉(用close(SESAME)),或對同一句柄的一系列open把這個句柄和另一文件聯結[3]。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩视频一区 | 久草在线手机观看 | 久久国产精品久久久久久电车 | 草妞视频 | 欧美精品免费一区二区三区 | 免费在线观看亚洲 | 精品在线观看一区二区三区 | 日韩视频在线一区二区三区 | 成人18免费观看 | 成人不卡免费视频 | 一区二区三区日韩电影 | 欧美日韩国产成人在线 | 国产超碰人人爽人人做人人爱 | 中文字幕网在线 | 久久羞羞视频 | 一区二区三区在线视频观看58 | 韩国精品视频在线观看 | 香蕉国产片 | www.91在线观看 | 特黄一级小说 | 免费午夜视频 | 青青草成人影视 | 男女生羞羞视频网站在线观看 | 中文日韩欧美 | 91久久久久久久久久久久久 | 91久久一区 | 日韩视频―中文字幕 | 亚洲成人福利在线观看 | 欧美精品免费一区二区三区 | 黄色99视频 | 91精品久久久久久久久 | 国产羞羞网站 | 羞羞视频免费观看网站 | 亚洲午夜视频 | 久久精品成人影院 | 人人舔人人插 | 羞羞电影在线观看www | 久久国产精品久久精品国产演员表 | www嫩草| 中国av免费在线观看 | 久久人人人 |