【问题标题】:What are the different ways of writing output to console in Perl?在 Perl 中将输出写入控制台有哪些不同的方法?
【发布时间】:2017-09-27 12:13:10
【问题描述】:

我知道print、printf、die、warn、say 具有不同的功能,但都打印到控制台。我正在做一个项目,我将日志框架集成到 Perl,所以我需要知道在 Perl 中打印输出到控制台的所有功能,无论它们的功能如何。

【问题讨论】:

    标签: perl logging console printf


    【解决方案1】:

    “控制台”是一个稍微复杂的概念。实际上有两个文件句柄,默认情况下,附加到控制台。 STDOUT 是写入标准输出的地方,STDERR 是写入错误和警告的地方。

    当然,这些文件句柄可能根本不会附加到控制台。大多数操作系统都支持 I/O 重定向。 STDOUT 可能附加到一个文件,而 STDERR 可能附加到另一个文件。

    其中许多函数允许您更改它们写入的文件句柄。例如print() 接受一个可选的第一个参数,它是一个文件句柄。

    然后是select,可用于更改print()等函数使用的默认文件句柄。

    在perldoc perlfunc 中,您可以找到“输入和输出函数”列表。遍历该列表以提取产生输出的列表非常简单。

    • die - 写入 STDERR
    • warn - 写入 STDERR
    • print - 写入 STDOUT
    • printf - 写入 STDOUT
    • say - 写入 STDOUT
    • syswrite - 写入指定的文件句柄
    • write - 写入 STDOUT

    当然,还有许多其他模块可以包含写入各种文件句柄的新函数。例如,Carp 定义函数,carp()、croak()、cluck() 和 confess() - 所有这些都写入 STDERR。

    【讨论】:

    • 谢谢@mob。很高兴知道周围有人照顾我愚蠢的错别字:-/
    猜你喜欢
    • 2020-04-10
    • 2016-07-01
    • 2019-02-04
    • 2012-12-18
    • 2017-09-30
    • 1970-01-01
    • 2011-09-26
    相关资源
    最近更新 更多