你能在 Perl 中强制刷新输出吗?

2024-04-01

我在 Perl 中有以下两行:

print "Warning: this will overwrite existing files.  Continue? [y/N]: \n";
my $input = <STDIN>;

问题是在 Perl 脚本暂停输入之前,打印行不会被执行。也就是说,Perl 脚本似乎无限期地停止,没有明显的原因。我猜测输出以某种方式被缓冲(这就是我放入 \n 的原因,但这似乎没有帮助)。


默认情况下,STDOUT 在连接到终端时是行缓冲的(由 LF 刷新),而在连接到终端以外的其他设备时是块缓冲的(当缓冲区变满时刷新)。此外,<STDIN>当连接到终端时刷新 STDOUT。

这意味着

  • STDOUT 未连接到终端,
  • 您没有打印到 STDOUT,或者
  • STDOUT 被搞乱了。

print打印到当前select当未提供句柄时,将使用 ed 句柄,因此无论以上哪一项为真,以下内容都将起作用:

# Execute after the print.
# Flush the currently selected handle.
# Needs "use IO::Handle;" in older versions of Perl.
select()->flush();

or

# Execute anytime before the <STDIN>.
# Causes the currently selected handle to be flushed immediately and after every print.
$| = 1;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

你能在 Perl 中强制刷新输出吗? 的相关文章

随机推荐

  • 如果 IP 位于 IP 范围之间,则限制该 IP

    好的 今天是星期五下午 我度过了漫长的一周 所以希望得到一些帮助 目前 我有一个 IP 范围列表 如下所示 List
  • Visual Studio 2019 - 在 WebApp 中添加 WebJob 项目

    在我的解决方案中 我有一个 aspnet core 2 2 WebApp 我想添加一个现有项目 例如 webJob 但没有选项 从现有项目添加 WebJobs 为什么 使用相同的过程 我在其他 Net 应用程序上添加 WebJobs 此选项
  • 互斥体和 Windows Phone 8.1

    这是我的问题 Windows Phone 8 1 Visual Studio 2013 版本 4 我有一个主项目和一个每 30 分钟运行一次的后台项目 我想在两者之间传递数据 我想确保对 Windows Storage Applicatio
  • 如何在 android layout.xml 文件中创建 2 行按钮

    我尝试在 android layout xml 文件中创建 2 行按钮 第一行左对齐 第二行居中对齐 这就是我所做的 但我最终得到了一排按钮 你能告诉我我做错了什么吗 enter code here
  • 查找“IN”子句中与记录不匹配的值

    我有一个dept表与eng and finance记录 它不包含以下记录foo bar or baz 我有一个休眠查询 它返回与我要查找的内容匹配的记录 看起来像 select from dept where dept name in en
  • 布局权重在 ScrollView 中不起作用

    我想将布局权重分配给一个中的多个项目LinearLayout里面的一个ScrollView 但是 那ScrollView忽略LinearLayout weightSum 我的目标是将布局划分为权重 2 1 1 总和为 4 但这在 a 内部无
  • 在 R 中访问多个艺术家的 Spotify API

    我在 Spotify 的开发者应用程序部分创建了客户端 ID 和密钥 我正在参考这份文件 并希望通过选择多名艺术家来扩展它 https www r bloggers com the eurovision 2016 song contest
  • 使用指针交换对象

    我正在尝试为使用 void 指针交换对象的作业问题交换对象 我的函数的声明必须是 void swap void a void b size t size 我并不是在寻找如何执行此操作的确切代码 这样我就可以自己弄清楚 但我不确定我是否理解正
  • 找出3个字母的单词

    我的 Python 代码如下 import re string what are you doing you i just said hello guys regexValue re compile r s w w w s mo regex
  • R光栅绘制图像,画一个圆并掩盖圆外的像素

    下面的代码绘制一个图像 然后在该图像上绘制圆圈 我想让该圆圈之外的所有像素都变成黑色 我怎么能这么做呢 library raster library plotrix r1 lt brick system file external rlog
  • 无法安装 XML 包

    我无法安装最新的 XML 包 V3 9 4 我通过键入以下内容在 RGUI 中手动安装它 install packages LOCALDIR XML 3 6 0 tar gz repos NULL type source 但收到一些错误消息
  • Vaadin 7 在执行后台线程后不刷新 UI(仅当需要超过 5 分钟时)

    我正在使用 Vaadin 7 在我的应用程序中 有一个表格列表 用户可以选择一个或多个项目来详细说明 如果单击执行按钮 UI 组件将被禁用并启动两个线程 第一个线程执行繁重的计算 第二个线程更新 UI 上的进度指示器 使用 lock 和un
  • jest.mock express-jwt 受保护路由的中间件行为

    所以现在我有这样的东西 这不起作用 import app from src app beforeAll gt jest mock src middleware auth gt req Request res Response next Ne
  • 为什么在 initWIthCoder:(NSCoder *)aDecoder 中调用时未设置我的 UIView 图层属性?

    我构建了一个自定义 View 类 它是 UIView 的子类 该视图通过 ViewController 中的 nib 文件加载 NSBundle main loadNibNamed MyCustomView owner self optio
  • CUnit - “模拟”libc 函数

    我正在使用 CUnit 进行项目单元测试 我需要测试是否使用正确的参数调用 libc 函数以及是否以正确的方式处理它们的返回值 例如 如果我调用 bind 函数 我想检查我传递的 af 参数并断言如果这是错误的 并且我还想模拟它的返回值并断
  • Google OAuth2 授权 OAuth 令牌错误:redirect_uri_mismatch

    我正在根据此网页创建并授权 OAuth 令牌 https code google com p google mail oauth2 tools wiki OAuth2DotPyRunThrough https code google com
  • 找到最小正值

    从固定数量 在本例中为 3 个值中找到最小非零正值或在没有正问题时返回 0 的最佳算法是什么 我的天真的方法如下 在Delphi中 但请随意使用您喜欢的任何方法 但我认为有一种更优雅的方法 value1Temp MaxInt value2T
  • 将多个源 ArrayList 同步到单个目标列表

    需要从两个不同的表加载项目列表 ArrayList 由于 Hibernate 映射复杂 它们无法作为一个 ArrayList 加载 所以它们是由类定义中的两个不同的Hibernate包分别加载的 当我使用它们时 我想合并成一个列表 所以我正
  • 仅在调试模式下使用特定的 minSdkVersion

    如何仅在调试模式下使用特定的 minSdkVersion 我想使用 minSdkVersion 21 进行调试模式 但使用 minSdkVersion 15 进行发布 我不想为此使用香料 因为会带来麻烦 我认为可能是这样的 但不起作用 de
  • 你能在 Perl 中强制刷新输出吗?

    我在 Perl 中有以下两行 print Warning this will overwrite existing files Continue y N n my input