Test::Builder::IO::Scalar - Test::Builder 的 IO::Scalar 副本
這是 IO::Scalar 的副本,隨附 Test::Builder,以支援 Perl 5.6 上的純量參考作為檔案代號。較新版本的 Perl 只需使用 open()
內建的支援。
Test::Builder 無法依賴其他模組,除非經過仔細考量,因此它已直接複製到發行版中。
此檔案來自「IO-stringy」Perl5 工具包。
版權所有 (c) 1996 Eryq。保留所有權利。版權所有 (c) 1999,2001 ZeeGee Software Inc。保留所有權利。
此程式為免費軟體;您可以在與 Perl 相同的條款下重新散發或修改它。
類別方法。傳回一個新的、未附加的純量句柄。如果給定任何參數,則會傳送給 open()。
實例方法。在新的純量上開啟純量句柄,由 SCALARREF 指向。如果未給定 SCALARREF,則會建立一個「私人」純量來儲存檔案資料。
成功時傳回 self 物件,錯誤時傳回未定義。
實例方法。純量句柄是否在某個項目上開啟?
實例方法。解除純量句柄與其底層純量的關聯。會在銷毀時自動執行。
實例方法。無操作,提供給 OO 相容性。
實例方法。傳回下一個字元,如果沒有則傳回未定義。
實例方法。傳回下一行,或在字串結束時傳回未定義。可以在陣列內容中安全呼叫。目前,行由「\n」分隔。
實例方法。取得所有剩餘行。如果意外在純量內容中呼叫,它會 croak()。
實例方法。將 ARGS 列印到底層純量。
警告:這會持續導致尋找字串結尾,但如果你執行 seek() 和 tell(),在後續 print() 之前明確尋找結尾仍然比較安全。
實例方法。從純量讀取一些位元組。傳回實際讀取的位元組數,在檔案結束時傳回 0,在錯誤時傳回未定義。
實例方法。將一些位元組寫入純量。
實例方法。從純量讀取一些位元組。傳回實際讀取的位元組數,在檔案結束時傳回 0,在錯誤時傳回未定義。
實例方法。將一些位元組寫入純量。
實例方法。無操作,提供給 OO 相容性。
實例方法。無操作,提供給 OO 相容性。
實例方法。清除錯誤和 EOF 旗標。無作用。
實例方法。我們是否已在檔案結尾?
實例方法。在串流中尋找特定位置。
實例方法。與 seek OFFSET, WHENCE
相同,q.v.
實例方法。傳回串流中目前的數字偏移量位置。
實例方法。已棄用且已忽略。遵循 $/, 的目前設定,就像 IO::Handle 所做的一樣?在 1.x 中預設為 false,但在 2.x 和更新版本中強制設定為 true。
實例方法。使用 getpos()
傳回的不透明值設定目前位置。
實例方法。傳回字串中目前的不透明物件位置。
實例方法。傳回基礎純量變數的參考。
Perl 的 TIEHANDLE 規格在 5.005_57 之前不完整;它缺少對 seek()
、tell()
和 eof()
的支援。在 5.005_57 之前嘗試對 IO::Scalar 使用這些函式將無法運作。IO::Scalar 將不會呼叫相關方法;更糟的是,這種錯誤可能會潛伏一段時間。如果您開啟警告(透過 $^W
或 perl -w
),並且您看到類似以下內容...
attempt to seek on unopened filehandle
...那麼您可能嘗試對舊版 Perl 的 IO::Scalar 使用其中一個函式。解決方法很簡單,只要使用 OO 版本即可;例如
$SH->seek(0,0); ### GOOD: will work on any 5.005
seek($SH,0,0); ### WARNING: will only work on 5.005_57 and beyond
$Id: Scalar.pm,v 1.6 2005/02/10 21:21:53 dfs Exp $
David F. Skoll (dfs@roaringpenguin.com)。
Eryq (eryq@zeegee.com)。ZeeGee Software Inc 總裁 (http://www.zeegee.com)。
完整的貢獻者名單總是包含 "IO::Stringy 中的變更記錄" 中所提到的各位。但無論如何,特別感謝以下個人提供的寶貴貢獻(如果我忘記或拼錯您的名字,請寄信給我!)
Andy Glew,貢獻了 getc()
。
Brandon Browning,建議了 opened()
。
David Richter,找出並修復了 PRINTF()
中的錯誤。
Eric L. Brine,提供了使用偏移量的 read() 和 write() 實作。
Richard Jones,提供了大幅提升 getline()
效能的修補程式,並加入了 sysread
和 syswrite
。
B. K. Oxley (binkley),提供了字串化和繼承的改善,以及許多好點子。
Doug Wilson,提供了 IO::Handle 繼承和自動繫結。
IO::String,它非常類似,但設計得較為新穎,並考量了類似 IO::Handle 的介面,因此您可以在不使用 tied() 的情況下混合使用 OO 和原生檔案句柄。
注意:從 2.x 版開始,這些類別都像它們的 IO::Handle 對應類別一樣運作,因此我們具備了與 IO::String 相當的功能。