为什么我的 Perl 祝福文件句柄不使用“can('print')”返回 true?

2024-02-19

由于某种原因,我无法让文件句柄与 Expect.pm 一起使用log_file方法。我最初得到的帮助是如何将文件句柄传递给 Perl Expect 的 log_file 函数? https://stackoverflow.com/questions/3719545/passing-filehandle-to-perl-expects-log-file-function,其中建议我使用 IO::Handle 文件句柄传递给该方法。这似乎是一个不同的问题,所以我想我应该开始一个新问题。

这是 Expect.pm 的违规部分:

if (ref($file) ne 'CODE') {
  croak "Given logfile doesn't have a 'print' method"
    if not $fh->can("print");
  $fh->autoflush(1);        # so logfile is up to date
}

那么,我尝试了这个示例代码:

use IO::Handle;
open $fh, ">>", "file.out" or die "Can't open file";
$fh->print("Hello, world");
if ($fh->can("print"))
{
  print "Yes\n";
}
else
{
  print "No\n";
}

当我运行这个时,我得到两个(在我看来)相互冲突的项目。一个文件,其中一行显示“Hello, world”,输出为“No”。在我看来,$fh->can行应该返回 true。我这里错了吗?


奇怪的是,看起来你需要创建一个真实的IO::File http://perldoc.perl.org/IO/File.html对象得到can工作方法。尝试

use IO::File;

my $fh = IO::File->new("file.out", ">>")
    or die "Couldn't open file: $!";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 Perl 祝福文件句柄不使用“can('print')”返回 true? 的相关文章

  • 检查字符串中是否存在所有字符值

    我目前正在做这项任务 但我被困住了 目标是读取文件并查找文件中的字符串中是否存在这些字符值 我必须将文件中的字符串与作为参数放入的另一个字符串进行比较 但是 只要每个字符值位于文件中的字符串中 那么它就 匹配 示例 输入和输出 a out
  • Java 错误:java.io.FileNotFoundException:C:\Users\FSSD\Desktop\My Test(访问被拒绝)

    我有一个java代码 用于将文件从一个文件夹复制到另一个文件夹 我使用了以下代码 我使用的是Windows 7操作系统 复制文件夹 java import java io File import java io FileInputStrea
  • 如何使用 Net::SSH::Perl 和公钥?

    我正在尝试使用Net SSH Perl使用公钥与此代码进行连接 my ssh Net SSH Perl gt new host debug gt 1 die 我将密钥放在 root ssh id rsa 和 root ssh identit
  • 如何读取文件,将数据放入JTable中,然后修改单元格/删除行并将数据保存到文件中? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要从 txt 文件中读取日期并将其放入 GUI 中的 JTable 中 然后修改一些记录或删除一些行并将新数据保存到文件中 我可以
  • 如何为不同的 Perl 应用程序安装专门的环境?

    就功能而言是否有与 Python 相同或接近的东西虚拟环境 http pypi python org pypi virtualenv what it does 但是对于 Perl 来说呢 我已经用 Python 进行了一些开发 并且将非系统
  • 迭代哈希数组

    我编写了下面的例程 迭代哈希值 0 7 并打印出每个哈希值中特定键的值 我需要获取每个哈希中 b4 的值 我想取消 0 7 当存在不同数量的哈希值时使用更智能的东西 例如 有时只有 2 个 也可能有 160 个 my out decode
  • Perl 和 Unix 如何以相同的顺序对 Unicode 字符串进行排序?

    我正在尝试获取 Perl 和 GNU Linuxsort 1 程序就如何对 Unicode 字符串进行排序达成一致 我在跑sort with LANG en US UTF 8 在Perl程序中我尝试了以下方法 use Unicode Col
  • 用 while 循环打开文件 - C [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 各位程序员大家好 我的问题不大 我不知道如何打开具有不同数字 在文件名中 的文件 从 1 到存在的任意数量的文件 例如 我有两个 或最
  • Perl YAML 模块无法识别标量类型

    我加载以下 yaml 文件 foo bar s 1 hx 0x34 用这段代码 use YAML qw LoadFile Dump use Data Dumper my d LoadFile test yaml print Dumper d
  • 编辑文件名在 JComboBox 中的显示方式,同时保持对文件的访问

    我对 Java 很陌生 对堆栈溢出也很陌生 我正在尝试利用 JMF API 创建一个用 Java 编码的简单媒体播放器 到目前为止 我已经能够设置一个简单的队列 播放列表来使用JComboBox called playListHolder
  • 从数据库和文件系统中删除文件

    我有一个表引用我们网络上共享位置中的文件 将文件路径存储在数据库中 我有一个按钮需要从数据库中删除记录并从文件系统中删除文件 foreach var report in reports string filePath report Repo
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • perl-5.10 之前的高效版本相当于 pack("Q>")

    更新 萨尔瓦正确地指出我对 Q 包模板的介绍是错误的 这是 gt 修饰符 不会返回到 5 8 Perl 5 10 引入了 pack 修饰符 gt 对于我使用 Q 的用例 它将一个无符号四边形 64 位 值打包在大尾数法 现在 我正在寻找一个
  • 在perl中调用基本构造函数

    从 Perl 中的类构造函数调用基本构造函数的正确方法是什么 我见过这样的语法 my class shift my a shift my b shift my self class gt SUPER new a b return self
  • 在 C++ 中检查文件是否存在的最佳方法是什么? (跨平台)

    我已阅读以下答案检查 C 中文件是否存在的最佳方法是什么 跨平台 https stackoverflow com questions 230062 whats the best way to check if a file exists i
  • Perl 的 caller() 函数返回错误的行号

    我在 Perl 5 10 1 上运行了以下脚本 usr bin perl use strict use warnings foreach my x 0 x lt 1 x Line 5 print line Line 6 sub print
  • 无法访问 res 文件夹?

    我有一个 Java 编程问题 需要帮助 我的类文件位于单独的包中 不是默认包 我正在尝试从我的 res 文件夹访问文件 我已将其添加为类文件夹 使用属性 gt 库 gt 添加类文件夹 在我的类中 我有以下代码 InputStream IS
  • 打包 Perl 应用程序,以便它可以在 Perl 的默认前缀之外工作

    我正在使用 Module Build 尽管我在构建环境上很灵活 来打包我正在编写的一些 Perl 软件 供我工作的内部使用 它包括一些脚本和一些辅助模块 我的计划是这样你就可以指定任何你想要的前缀 即perl默认值之外的东西 INC 在构建
  • 使用Perl/DBI/MySQL/InnoDB查找外键信息

    我想以编程方式查找 MySQL 数据库中特定 InnoDB 表的外键 我正在使用 Perl 我偶然发现 dbh gt foreign key info 我刚刚尝试使用它 但似乎有点错误 它不会返回 ON DELETE 和 ON UPDATE
  • 将变量写入 Ansible 中的文件

    我通过 URI 模块提取 JSON 并希望将接收到的内容写入文件 我能够获取内容并将其输出到调试器 因此我知道已收到内容 但我不知道写入文件的最佳实践 来自的重要评论tmoschou https stackoverflow com user

随机推荐

  • 使用 Xcode 7 禁用项目和 cocoapods 依赖项的位码?

    如何禁用项目和 cocoapod 依赖项的位码 这是我尝试使用 Xcode 7 运行项目时遇到的错误 不包含位码 您必须在启用位码 Xcode 设置 ENABLE BITCODE 的情况下重建它 从供应商处获取更新的库 或禁用该目标的位码
  • 本地化包含名称列表的字符串

    我有包含名称列表的字符串 如下所示 约翰向金 凯利 李和鲍勃询问了新年计划 名单中的名字数量可以非常多 我如何在 Java 中本地化它 我正在考虑 ResourceBundle 和 MessageFormat 我将如何在 MessageFo
  • 如何忽略通过 http 发送的属性

    我的应用程序中有一个接口 用于维护我想要发送到数据库的属性以及我不发送到数据库的属性 具体来说 我维护一个名为state可以设置为open or null 关闭 然后触发 Angular2 的动画state https angular io
  • RemoteActor 取消注册 actor

    我正在玩 RemoteActors 现在我想知道 如果我关闭 RemoteActor 会发生什么 该 Actor 可通过 RemoteActor alive 和 RemoteActor register 来使用 我找不到两者的逆 活着和注册
  • 如何在java中使用lucene添加自定义停用词

    我正在使用 lucene 删除英语停用词 但我的要求是删除英语停用词和自定义停用词 下面是我使用 lucene 删除英文停用词的代码 我的示例代码 public class Stopwords remove public String re
  • 从 Mastercard/VISA 借记卡/信用卡读取 EMV 数据 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试构建一个应用程序来读取 编码卡上的数据 如 PAN 到期日 客户名称 PIN 等信息 到目前为止 我发现我需要发送 APDU
  • 导航抽屉图标未显示(Sherlock 操作栏)

    让导航抽屉与 sherlock 操作栏配合使用 但我无法显示 3 行图标 如 gmail 而不是正常的向上按钮 getSupportActionBar setIcon R drawable myIcon getSupportActionBa
  • “ExecuteScalar:连接属性尚未初始化。”

    我是 C 新手 目前在不调试的情况下运行该程序时遇到一些问题 这是我的项目的登录页面 我创建了一个基于服务的数据库 我想连接到数据库中表 Table 中的用户名和密码数据 但是 我遇到了一个问题 ExecuteScalar 连接属性尚未初始
  • R 函数在 left_join 中进行故障恢复?

    我有 20 多个不同的数据表 其中的数据由相同的编码系统 北美行业分类系统 NAICS 索引 我想将它们连接到一个表中 问题是每个表中都有不同级别的详细信息 当我加入时 我希望通过失败编码系统的层次结构直到找到匹配来找到最佳匹配 一个常规的
  • 如何在 VBA 中处理工作表(unicode VBA 显示和处理)中西里尔字母引起的错误(#REF)?

    我想从特定的工作簿中获取数据 有几十个工作簿 循环部分工作正常 但下面的代码不起作用 因为工作表采用西里尔字母 并且它们给出了值 到sheet As String范围 我想问如何在不打开工作簿的情况下强制重命名它 无需Workbook Op
  • Laravel 4 Auth:尝试不起作用

    我在使用 Laravel 4 Auth attempt 方法时遇到了困难 遵循了正确的文档 阅读了几个 SO 线程 但我仍然无法让它工作 userData array email gt email protected cdn cgi l e
  • MySQL 使用日期时间进行选择,仅按日期分组

    是否可以从 MySQL 表中选择日期时间字段并仅按日期分组 我正在尝试输出多次发生的事件列表 并按发生日期分组 我的表 数据如下所示 时间戳是日期时间字段 1 2010 03 21 18 00 00 Event1 2 2010 03 21
  • 如何使用 Perl 将字符串转换为浮点数?

    有没有类似的功能int 哪个可以将字符串转换为浮点值 我目前正在使用以下代码 input int substr line 1 index line 1 我需要转换返回的字符串substr浮 只需使用它即可 在 Perl 中 看起来像数字的字
  • 如何根据一定的标准对列表进行排序

    例如我有一个清单 list word1 0 234 word2 0 2 word3 0 5 word4 0 67 我想按重要性对其进行排序 重要性是指该值距 0 5 有多远 排序后的列表应该是 list word2 0 2 word1 0
  • Windows Batch 读取文件并将行解析为标记和变量

    通过搜索这个网站并学习 Windows 批处理脚本这一荒谬的语言 我已经取得了很大的进展 但我现在陷入了困境 我有一个行数可变的文本文件 每行看起来像 AA8315 United States N777AN American Airline
  • 如果对象已经是同一或另一个状态树的一部分,则无法将对象添加到状态树

    mobx state tree module js f7d3 2154 未捕获错误 mobx state tree 如果对象已经是同一或另一个状态树的一部分 则无法将对象添加到状态树 我只是通过过滤另一个状态来得到这个错误 const da
  • JsDoc命名空间

    我正在使用 JsDoc 编辑 js 文件以获得干净的文档 我的结构非常简单 Finds an object param string prop Property Array prototype findObject function fin
  • 将 RGB 颜色存储在 MySQL 中。 char 还是 int 更好?

    我使用 PHP 从 MySQL 数据库查询 CSS 设置 然后将其回显到 CSS 样式表中 示例片段如下
  • ClickOnce 应用程序用户设置位置

    我目前正在开发一个 ClickOnce 应用程序 用于转换 CSV 文件以进行数据库更新 该程序要求用户能够更改数据库更改的配置文件 并更改填充应用程序中下拉列表的 XML 文件 现在我知道这些文件保存在 user appdata 文件夹中
  • 为什么我的 Perl 祝福文件句柄不使用“can('print')”返回 true?

    由于某种原因 我无法让文件句柄与 Expect pm 一起使用log file方法 我最初得到的帮助是如何将文件句柄传递给 Perl Expect 的 log file 函数 https stackoverflow com question