我想创建一个脚本,它需要一个输入文件和一个可选的输出文件。当您不传递输出文件时,脚本将使用与输入相同的文件名,但扩展名已更改。我不知道如何编写更改扩展名的默认参数。
#!/usr/bin/env raku
unit sub MAIN(
Str $input where *.IO.f, #= input file
Str $output = $input.IO.extension("txt"), #= output file
Bool :$copy, #= copy file
Bool :$move, #= move file
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用:
No such method 'IO' for invocant of type 'VMNull'
in block <unit> at ./copy.raku line 5
Run Code Online (Sandbox Code Playgroud)
我怎样才能做这样的事情呢?
我需要创建一个带有键/值的数据结构来维护顺序。哈希值不保持顺序,因此我使用的是成对的数组。一切都按预期进行。但是,我想在将其添加到数组之前检查每对的类型。该对应始终为 Str => Int。
[0] > my Pair @list
[1] > @list.push: "Roma" => 1
[Roma => 1]
[2] > @list.push: "Paris" => 2
[Roma => 1 Paris => 2]
[3] > @list.push: "Lisboa" => 3
[Roma => 1 Paris => 2 Lisboa => 3]
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似的东西my Int %list{Str}。任何想法?。
raku ×2