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 上被截断,我会认为这是一个错误。