加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – perl 5和perl 6下的文件ctime不同

发布时间:2020-12-16 06:16:07 所属栏目:大数据 来源:网络整理
导读:操作系统: Windows Server 2012 R2 Standart FS:NTFS === perl5 e:temporaryperl -vThis is perl 5,version 22,subversion 0 (v5.22.0) built for MSWin32-x64-multi-threade:temporarytype ctime.pluse File::stat;use Time::Piece;my $fn1 = 't:tempo
操作系统: Windows Server 2012 R2 Standart
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:temporarytiaЭнергияprint.pdf';
my $fn2 = 't:temporarytiaЭнергия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:temporarytiaЭнергияprint.pdf
changed  2016-07-01T03:48:22 <== (1)
modified 2016-05-04T03:03:08
accessed 2016-07-01T03:48:22
t:temporarytiaЭнергияkl_to_1c.txt
changed  2016-07-01T03:48:22 <== (3)
modified 2016-07-01T03:11:00
accessed 2016-07-01T03:48:22

=== perl6

e:temporary>perl6 -v
This is Rakudo version 2016.04 built on MoarVM version 2016.04
implementing Perl 6.c.

e:temporary>type ctime.pl6
use v6;
my $fio1 = 't:temporarytiaЭнергияprint.pdf'.IO;
my $fio2 = 't:temporarytiaЭнергияkl_to_1c.txt'.IO;

for $fio1,$fio2 {
    say .path;
    say 'changed  ',.changed.DateTime.truncated-to('second');
    say 'modified ',.modified.DateTime.truncated-to('second');
    say 'accessed ',.accessed.DateTime.truncated-to('second');

}

e:temporary>perl6 ctime.pl6
t:temporarytiaЭнергияprint.pdf
changed  2016-05-04T03:03:08Z <== (2)
modified 2016-05-04T03:03:08Z
accessed 2016-07-01T03:48:22Z
t:temporarytiaЭнергияkl_to_1c.txt
changed  2016-07-01T05:46:12Z <== (4)
modified 2016-07-01T03:11:00Z
accessed 2016-07-01T03:48:22Z

为什么(1),(2)和(3),(4)不同?
没关系?

再现(1),(2).
1)使用文本编辑器创建文件.差异将在几秒钟内完成.
来自perl5:

changed  2016-06-30T16:38:42
 modified 2016-06-30T16:38:48
 accessed 2016-06-30T16:38:42

来自perl6:

changed  2016-06-30T16:38:48Z
 modified 2016-06-30T16:38:48Z
 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

来自perl6:

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

来自cgwin / babun的’stat’:

{ ~ }  ? 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

解决方法

这可能是源自libuv的错误(参见: https://irclog.perlgeek.de/perl6/2016-07-11#i_12818620).即使它是,它也不应该进入Perl 6代码.请提交针对Rakudo的错误报告(参见: http://rakudo.org/tickets/).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读