是否所有Instants都与Perl 6中的机器相关?

Chr*_*oms 4 perl6

这是我可以找到定义的情况,但我不太了解它.从官方文档:

瞬间是以原子秒为单位测量的特定时刻,具有分数.它不依赖或意识到任何时代.

我不明白如何在没有时代的情况下指定特定时刻?它没有参考点吗?在两台不同的Linux机器上,似乎两个Instants都提到自POSIX Epoch以来的几秒钟.我的猜测是Instants确实有一个有效的开始时间,但是开始时间是依赖于实现/设备的.

# machine1
say(now * (1/3600) * (1/24) * (1/365.25)); # years from zero point
46.0748226200715

# machine2
say(now * (1/3600) * (1/24) * (1/365.25)); # years from zero point
46.0748712024946
Run Code Online (Sandbox Code Playgroud)

无论如何,我的问题是,可以依赖Instants在不同进程之间保持一致,还是只用于"内部"使用?

小智 5

say (now).WHAT; # «(Instant)?»
say (now * 1).WHAT # «(Num)?»
Run Code Online (Sandbox Code Playgroud)

任何数值运算符都会将它的操作数强制转换为Nums.如果你想要一个正确的字符串表示使用.perl.

say (now).perl # «Instant.from-posix((<1211194481492/833>, 0))?»
Run Code Online (Sandbox Code Playgroud)

无论你在哪个平台上,Instant.from-posix都将永远与Unix时代相关.

请参阅:https://github.com/rakudo/rakudo/blob/nom/src/core/Instant.pm#L15