我知道print
、printf
、die
、warn
、say
有不同的功能,但都打印到控制台。我正在开发一个项目,将日志框架集成到 Perl,因此我需要了解在 Perl 中将输出打印到控制台的所有函数,无论其功能如何。
最佳答案
“控制台”是一个稍微复杂的概念。实际上,默认情况下有两个文件句柄附加到控制台。 STDOUT 是写入标准输出的位置,STDERR 是写入错误和警告的位置。
然后,当然,这些文件句柄可能根本不会附加到控制台。大多数操作系统都支持 I/O 重定向。 STDOUT 可能附加到一个文件,而 STDERR 可能附加到另一个文件。
其中许多函数允许您更改它们写入的文件句柄。例如,print()
采用可选的第一个参数,即文件句柄。
然后是select
,它可用于更改print()
等函数使用的默认文件句柄。
在 perldoc perlfunc您可以找到“输入和输出函数”的列表。通过该列表来提取产生输出的列表非常简单。
die
- 写入 STDERR警告
- 写入 STDERRprint
- 写入 STDOUTprintf
- 写入 STDOUTsay
- 写入 STDOUTsyswrite
- 写入指定的文件句柄write
- 写入 STDOUT
当然,还有任意数量的其他模块可以包含写入各种文件句柄的新函数。例如,Carp定义函数 carp()
、croak()
、cluck()
和 confess()
- 所有写入 STDERR。
关于perl - 在 Perl 中将输出写入控制台有哪些不同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46447595/