gpt4 book ai didi

migration - 在 Raku 中替代 Perl 的 <>?

转载 作者:行者123 更新时间:2023-12-03 15:00:28 29 4
gpt4 key购买 nike

在这里学习我的 Raku(neé Perl 6)方法,非常好。但我非常想念魔法<>从 Perl 5 开始,您可以:

my $x = <>;
print $x;
while(<>) {
print join(':', split);
}

(将下一个输入行读入 $x ,循环其余部分;如果没有给出文件,则输入来自命名为输入或标准输入的文件)。 “Perl 5 到 6”教程/迁移指南/...随便说说 slurp读取整个文件,或 open按名称编辑单个文件。我找不到神奇的“按顺序从命名文件中获取输入”。

我要魔法回来!

最佳答案

您正在寻找的功能基本上已经存在。这个脚本:

my $x = get();
say "First: $x";
for lines() {
.say
}

鉴于这些输入文件:
$ cat foo
foo line 1
foo line 2
$ cat bar
bar line 1
bar line 2

将,当被调用为:
raku script.p6 foo bar

产生输出:
First: foo line 1
foo line 2
bar line 1
bar line 2

它还将从 $*IN 获取输出如果没有文件。唯一不存在的是 <> 的单个替换。 , 因为这取决于 wantarray -like 功能,与多分派(dispatch)不兼容(Raku 认为多分派(dispatch)更有用)。
get 的零参数候选和 lines已实现 in terms of $*ARGFILES , 一个文件句柄,提供从参数列表或 $*IN 获取文件的功能- 意味着可以将它传递给任何需要文件句柄的代码。

关于migration - 在 Raku 中替代 Perl 的 <>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60939016/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com