Jes*_*wak 9 string io file perl6 raku
我得到以下代码来尝试打开和写入文件(不加急):
sub MAIN {
my $h = open 'somefile.txt', :w, :a;
for 1..4 {
$fh.put: "hello";
}
$fh.close;
}
Run Code Online (Sandbox Code Playgroud)
我期望的是,每次运行时,都应在文件中附加4行“ hello”。但是,它似乎仍会覆盖该文件,在运行2次或更多次后,仍然只有4行。
$ perl6 opening.p6
$ cat somefile.txt
hello
hello
hello
hello
$ perl6 opening.p6
$ cat somefile.txt
hello
hello
hello
hello
Run Code Online (Sandbox Code Playgroud)
添加或删除:a或:append似乎不影响此行为,我缺少什么?
Chr*_*oph 12
根据打开的文档,您要
my $h = open 'somefile.txt', :a;
Run Code Online (Sandbox Code Playgroud)
一字母和两字母的简写不是修饰符,而是可以单独使用,并:w扩展为
:mode<wo>, :create, :truncate
Run Code Online (Sandbox Code Playgroud)
并:a扩展到
:mode<wo>, :create, :append
Run Code Online (Sandbox Code Playgroud)
模仿POSIX。
:w, :append实际上,您尝试过的组合也应该以附加模式打开文件-但仅在先将其截断之后才能打开文件,这似乎并不是特别有用...