perl - 打印: producing no output

标签 perl printing

我很困惑。我只有一台新的开发机器,而perl对于 print 命令似乎什么也不输出。

#!/usr/bin/perl
use warnings;
use strict;
print "A";
print STDOUT "B";
print STDERR "C";
open FH, ">", "testprint';
print FH "D";
close FH;

在控制台中不产生任何内容, testprint 成为1再见(空)文件。

即使这样也不会产生任何结果:
perl -e "print 'a';"

这两种碰巧都发生在我的机器上的perl二进制文件中。我对从哪里开始调试此问题感到困惑。有任何想法吗?

编辑:
perl -v

This is perl, v5.8.8 built for x86_64-linx-thread-multi


which perl

/usr/bin/perl

最佳答案

我相信问题在Perl之外存在。任何一个

  • 运行脚本
  • 时,终端处于某种异常状态
  • perl的父进程将perl的输出重定向到远离终端(或
  • )的位置
  • perl的父进程未提供perl的STDOUT和STDERR。

  • 您可能可以通过实际检查print是否返回错误来收集更多信息。 (这总是让我感到困惑,为什么当某些事情不起作用时,人们为什么不检查错误,以他们期望的方式工作。)
    perl -we'print("a") or die("Can'\''t print: $!\n");'
    

    您可以使用strace或系统上调用的任何内容来收集更多信息。 (查找write(1write(2。)
    strace perl -we'print("a") or die("Can'\''t print: $!\n");'
    

    但是,如果问题出在Perl之外,则这些命令应该什么也不打印,这就是为什么明智的选择尝试将输出重定向到文件,然后检查文件及其大小。
    perl -we'print("a") or die("Can'\''t print: $!\n");' 1>out 2>err
    

    关于perl - 打印: producing no output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830610/

    相关文章:

    perl - 操作系统更新后,big sur 上的 mytop 停止工作

    perl - 通过连接字符串和 int 将一个变量分配给另一个变量

    perl - 如何在 mod_perl 中打包/压缩 css 和 js 文件?

    perl - 为什么在释放大数组时 Perl 不垃圾回收内存?

    c# - 为 Windows 客户端(而非 Web 应用程序)打印的最佳方式?

    javascript - 使用 Javascript 打印外部 HTML 文件

    printing - 歌剧只打印几页

    java - 尝试从另一个对象引用变量(JAVA)

    perl - Perl中的静态局部变量

    html - 如何使用反增量在打印的网页上显示页码?