2017-09-27 162 views

回答

3

「控制檯」是一個稍微複雜的概念。實際上有兩個文件句柄,默認情況下連接到控制檯。 STDOUT是寫入標準輸出的地方,STDERR是寫入錯誤和警告的地方。

然後,當然,這些文件句柄可能根本不會附加到控制檯。大多數操作系統都支持I/O重定向。 STDOUT可能會附加到一個文件,STDERR附加到另一個文件。

許多這些功能允許您更改他們寫入的文件句柄。例如print()接受一個可選的第一個參數,它是一個文件句柄。

然後有select它可以用來更改print()等函數使用的默認文件句柄。

perldoc perlfunc中,您可以找到「輸入和輸出功能」列表。通過該列表來提取產生輸出的列表非常簡單。

  • die - 寫入STDERR
  • warn - 寫入STDERR
  • print - 寫到標準輸出
  • printf - 寫到標準輸出
  • say - 寫到標準輸出
  • syswrite - 寫入指定的文件句柄
  • write - 寫入STDOUT

當然,還有其他任何模塊可以包含寫入各種文件句柄的新功能。例如,Carp定義了功能carp(),croak(),cluck()confess() - 所有功能都寫入STDERR。

+0

Thanks @mob。很高興知道有人在照顧我愚蠢的錯別字: -/ –

+1

還有'send'寫入指定的套接字。 (內心深處,只是另一個句柄)。 – Abigail