如何在 Perl 6 中追加到文件?

2024-04-10

我正在尝试这个和其他一些事情,但它每次都会截断文件:

my $file = 'primes.txt';
sub MAIN ( Int:D $low, Int:D $high where * >= $low ) {
    unless my $fh = open $file, :w, :append {
        die "Could not open '$file': {$fh.exception}";
    }

    for $low .. $high {
        $fh.put: $_ if .is-prime;
    }
}

将此更改为open $file, :a似乎也截断了文件。 这是 macOS 上的 2018.04。


Perl6 &open语义基于POSIX http://pubs.opengroup.org/onlinepubs/009696699/functions/open.html,具有以下映射:

:mode<ro>  --> O_RDONLY
:mode<wo>  --> O_WRONLY
:mode<rw>  --> O_RDWR
:create    --> O_CREAT
:append    --> O_APPEND
:truncate  --> O_TRUNC
:exclusive --> O_EXCL

为了方便起见,提供了以下快捷方式:

:r      --> :mode<ro>
:w      --> :mode<wo>, :create, :truncate
:x      --> :mode<wo>, :create, :exclusive
:a      --> :mode<wo>, :create, :append
:update --> :mode<rw>
:rw     --> :mode<rw>, :create
:rx     --> :mode<rw>, :create, :exclusive
:ra     --> :mode<rw>, :create, :append

并非 Rakudo 支持的所有平台(例如 Windows、JVM,甚至 POSIX 本身)都支持所有可能的模式和标志组合,因此只有上述组合才能保证按预期运行(或至少应该按预期运行)。

长话短说,简单:a绝对应该做你想要它做的事情,它在我的 Windows 机器上也是这样做的。如果它真的在 MacOS 上被截断,我会认为这是一个错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Perl 6 中追加到文件? 的相关文章

随机推荐

  • 我可以在 Composer 中存在循环依赖吗?

    我正在编写一个包 A 它是其他一些包 B 所需要的 而我现在还没有发布该包 B 在某些时候 A 将被更改为使用自身 B 很可能它们应该在同一个包中 但我更喜欢将这两件事分开 只是为了干净起见 更重要的是 因为 B 只是对 A 的开发依赖 p
  • 片段未显示

    我遇到一个问题 我可以创建一个片段 它的视图似乎已创建 但没有显示 片段本身已创建 内部的任何代码都可以正常运行 但它只是在某处不可见 后退按钮也可以很好地与它交互 它 关闭 它 它只是没有实际显示在屏幕上 仅显示主布局 来自我的 Frag
  • 禁用 iPhone 4S / 新 iPad 键盘上的听写按钮

    我们的应用程序是一个医疗保健应用程序 我们的应用程序中有一个符合 HIPAA 标准的语音识别器 所有听写都可以通过它进行 医院不希望医生意外开始与不符合 HIPAA 标准的 Nuance Dragon 服务器进行对话 因此 我正在寻找可以抑
  • 我可以在 NHibernate 中使用表值函数作为查询源吗?

    正如您可能已经猜到的 亲爱的社区 我有一个问题要问您 所以 我希望 NHibernate 根据表值 sql 函数的评估来过滤查询结果 NHibernate 生成的可能的 SQL 查询可能类似于以下内容 SELECT whatever FRO
  • Android Studio 中出现错误:INSTALL_FAILED_OLDER_SDK

    我刚刚安装了 Android Studio 并正在从 Eclipse 移植我的项目 当我尝试仅在我的手机 4 4 2 API 19 上运行该应用程序时 出现错误Failure INSTALL FAILED OLDER SDK 我的 buil
  • UIScrollView 内视图中的 UIgestureRecognizer

    有没有人设法让 UIGestureRecognizer 在作为 UIScrollView 子视图的 UIView 上工作 我的回调似乎从未被调用 作为一个简单的示例 我想要一个分页滚动视图 并在第三页上使用 UITapGestureReco
  • Flexbox:带有粘性页脚的可滚动内容

    我想制作一个盒子 在本例中为弹性项目 它始终位于容器的中间 在该框中 有页眉 页脚和内容部分 如果内容的高度变得太大 我希望内容部分可以滚动 页眉和页脚应始终可见 并且框应始终保留在其容器中 这是我能够写的内容 HTML div class
  • 如何跟踪 SSIS 数据流任务中成功处理或失败的行的状态?

    我有一个非常简单的数据流任务从 FF 读取数据并将数据插入表中 同时我想在审计表中写入 插入了多少行 创建日期 我怎样才能轻松做到这一点 如果您只对成功处理的行数或遇到错误的行数感兴趣 那么您可以使用内置的SSIS logging特征 请检
  • 使用 Omni Thread Library 在 Delphi 中异步获取函数结果

    我试图从另一个单元 类调用一个函数 这需要一些时间来执行任务并返回一个字符串值 我找不到类似于 C async await 的好的参考 比如 Delphi 中的简单方法 使用 Omni Thread 库对我来说似乎是个好主意 一个简单的例子
  • 在子目录(而不是根目录)中运行 Wordpress

    我有一个wordpress网站 当前运行在我网站的子目录中 基本上我的结构如下 根 wp 我想将 wordpress wp 文件夹保留在同一位置 但让它直接从根 url 加载 wordpress 网站 例如 当前当我访问 www mysit
  • 用于分析 Node.js 核心转储的工具 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如果我使用 gcore 制作 Node js 进程的代码转储 分析它的最佳工具是什么 灵感来自 jav
  • 为什么 TypeScript 不简化类型与其超类型之一的交集?

    有没有办法让 TypeScript 的检查器简化交集类型中不必要的元素 或者我错认为它们是不必要的 IIUC 类型SubType SuperType相当于SubType 但 typescript 似乎没有执行这种简化 如下所示 我定义了一个
  • 删除重复的SQL记录

    删除表中重复名称的记录的最简单方法是什么 我遇到的答案非常令人困惑 Related 从表中删除重复记录 https stackoverflow com questions 529098 removing duplicate rows fro
  • 使用 Maven 程序集插件创建 EAR [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我尝试使用
  • R Shiny - 如何使用第 2 列中的嵌套行生成此布局

    我想在 Fluid9 下有两行 但这不起作用 第一行应该有 3 个图 而第二行应该只有 1 个图 跨越第一行 3 个图的宽度 9 我缺少什么 我正在尝试得到类似的东西this http shinyprognostics de pemDemo
  • startActivityForResult() 已弃用用于 google 登录

    我想让谷歌登录我的应用程序 但我收到此错误 startActivityForResult deprecated in java 这是我的代码 val signInIntent googleSignInClient signInIntent
  • R 函数胶水与粘贴

    我最近发现了胶水包 经过一番研究后我不明白为什么glue glue应该优先于paste 根据这个网站 https cran r project org web packages glue vignettes speed html 胶水速度慢
  • Angular 2 相当于 ng-bind-html、$sce.trustAsHTML() 和 $compile?

    在 Angular 1 x 中 我们可以使用 HTML 标签实时插入 HTMLng bind html 结合JavaScript调用 sce trustAsHTML 这让我们完成了 80 的工作 但在使用 Angular 标签时不起作用 例
  • Xcode 中的构建和存档有什么区别

    我想构建一个框架 当我使用命令行构建和归档来编译项目时 结果是它们的大小不同 构建 比存档大得多 why 我使用的命令 xcodebuild target xx configuration Release clean build UFW A
  • 如何在 Perl 6 中追加到文件?

    我正在尝试这个和其他一些事情 但它每次都会截断文件 my file primes txt sub MAIN Int D low Int D high where gt low unless my fh open file w append