Raku perl 5和perl 6下的文件ctime不同

Raku perl 5和perl 6下的文件ctime不同,raku,Raku,操作系统:Windows Server 2012 R2标准 FS:NTFS ==perl5 e:\temporary>perl -v This is perl 5, version 22, subversion 0 (v5.22.0) built for MSWin32-x64-multi-thread e:\temporary>type ctime.pl use File::stat; use Time::Piece; my $fn1 = 't:\temporary\tia\Э

操作系统:Windows Server 2012 R2标准 FS:NTFS

==perl5

e:\temporary>perl -v
This is perl 5, version 22, subversion 0 (v5.22.0) built for MSWin32-x64-multi-thread

e:\temporary>type ctime.pl
use File::stat;
use Time::Piece;

my $fn1 = 't:\temporary\tia\Энергия\print.pdf';
my $fn2 = 't:\temporary\tia\Энергия\kl_to_1c.txt';
for ($fn1,$fn2) {
    my $fs = stat($_);
    print "$_\n";
    print 'changed  ',gmtime($fs->ctime)->datetime,"\n";
    print 'modified ',gmtime($fs->mtime)->datetime,"\n";
    print 'accessed ',gmtime($fs->atime)->datetime,"\n";
}

e:\temporary>perl ctime.pl
t:\temporary\tia\Энергия\print.pdf
changed  2016-07-01T03:48:22 <== (1)
modified 2016-05-04T03:03:08
accessed 2016-07-01T03:48:22
t:\temporary\tia\Энергия\kl_to_1c.txt
changed  2016-07-01T03:48:22 <== (3)
modified 2016-07-01T03:11:00
accessed 2016-07-01T03:48:22
从perl6:

 changed  2016-06-30T16:38:48Z
 modified 2016-06-30T16:38:48Z
 accessed 2016-06-30T16:38:42Z
 changed  2016-06-30T16:49:17Z <==
 modified 2016-06-30T16:49:17Z
 accessed 2016-06-30T16:38:42Z
2) 几分钟后编辑此文件。差异将更加明显。 从perl5:

  changed  2016-06-30T16:38:42 <==
  modified 2016-06-30T16:49:17
  accessed 2016-06-30T16:38:42

这可能是源于libuv的错误(请参阅:)。即使是这样,它也不应该进入Perl6代码。请针对Rakudo(请参阅:)提交一份错误报告。

仅调用文件上的
stat
命令的结果是什么?我使用UTC/GMT更新了示例。由于Windows没有“stat”使用cgwin/babun shell获取数据,因此文档中提到
ctime
是不可移植的。查看下表,它提到
ctime
是Windows上的创建时间。Rakudo可能会做一些不同的事情来尝试更便携。(也可能是虫子)嗯。。我确信perl6是返回正确值的那个?它似乎返回了不同的时间,以便将
цццццц\klцu转换为_1c.txt
,更不用说它似乎与cygwin的统计输出一致。。也许我弄错了?@Timbus这件事没有错也没有对。如何将这4个时间戳映射到3个posix时间戳是个人偏好的问题。在没有充分理由改变Perl 5和Perl 6之间的行为的情况下,我们希望尽可能接近Perl 5,以便在使用Inline::Perl5时更容易从5移植到6,并避免陷阱。Perl 5中的正确方法也是使用Win32API::File::Time。Perl 6也是如此,非常欢迎您编写该模块。:)
  changed  2016-06-30T16:38:42 <==
  modified 2016-06-30T16:49:17
  accessed 2016-06-30T16:38:42
 changed  2016-06-30T16:49:17Z <==
 modified 2016-06-30T16:49:17Z
 accessed 2016-06-30T16:38:42Z
{ ~ }  » stat t:/temporary/tia/Энергия/print.pdf                                                ~
  File: ‘t:/temporary/tia/Энергия/print.pdf’
  Size: 81595           Blocks: 80         IO Block: 65536  regular file
Device: dfe235h/14672437d       Inode: 26458647810801926  Links: 1
Access: (0644/-rw-r--r--)  Uid: (  500/Administrator)   Gid: (  513/Domain Users)
Access: 2016-07-01 09:48:22.578784100 +0600
Modify: 2016-05-04 09:03:08.602697600 +0600
Change: 2016-05-04 09:03:08.602697600 +0600
 Birth: 2016-07-01 09:48:22.578784100 +0600

{ ~ }  » stat t:/temporary/tia/Энергия/kl_to_1c.txt                                           ~ 1
  File: ‘t:/temporary/tia/Энергия/kl_to_1c.txt’
  Size: 4596            Blocks: 8          IO Block: 65536  regular file
Device: dfe235h/14672437d       Inode: 24769797950537989  Links: 1
Access: (0644/-rw-r--r--)  Uid: (  500/Administrator)   Gid: (  513/Domain Users)
Access: 2016-07-01 09:48:22.563158800 +0600
Modify: 2016-07-01 09:11:00.585249200 +0600
Change: 2016-07-01 11:46:12.037712200 +0600
 Birth: 2016-07-01 09:48:22.563158800 +0600