perl - 从 perl 脚本中,您可以知道要将输出重定向到的文件的名称吗?

标签 perl

所以我有:

test.pl > test.log

有没有办法知道我正在输出到“test.log”的 test.pl 中?在我的脚本末尾,我想对 test.log 进行一些操作而不对名称进行硬编码。

最佳答案

也许吧。以下适用于 Linux,但不会很好地移植到其他系统...

#!/usr/bin/env perl

use strict;
use warnings;

my $out = readlink("/proc/$$/fd/1");
print STDERR "I am being output to $out\n";

当然,这可能是个坏主意。最好显式打开文件并用 Perl 写入,而不是让 shell 设置重定向。

关于perl - 从 perl 脚本中,您可以知道要将输出重定向到的文件的名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20287514/

相关文章:

perl - 什么是experimental::private_use?

linux - 如何使用 Perl 终止 OpenVPN 连接?

perl - 如何在Perl中禁止UTF-8警告?

perl - 在脚本中更改工作目录的最佳做法是什么?

windows - 如何使用 Win32::API 调用 Win32 DLL void** 参数?

perl - Facebook::Graph 无法获取访问 token TLS 支持不可用

perl - 为什么我要使用 Perl 匿名子例程而不是命名的子例程?

javascript - 使用perl在js中隐藏模型

html - Perl解析html后出现未初始化值错误

perl - 在perl中获取相对于主目录的路径