【发布时间】:2017-02-22 15:00:06
【问题描述】:
我最近实现了一个新的 NAS 文件管理器,并且在挂载之后 它在 Linux 服务器上,Perl 解释器(版本 5.005_03)无法 识别该挂载上是否存在文件:
[root@server ~]# stat /newmount/testfile
File: `/newmount/testfile'
Size: 0 Blocks: 0 IO Block: 65536 regular empty file
Device: 48h/72d Inode: 9262698097446760736 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ testuser) Gid: ( 500/ testuser)
Access: 2017-02-22 16:44:21.218314000 +0200
Modify: 2017-02-22 16:44:21.218314000 +0200
Change: 2017-02-22 16:44:21.218314000 +0200
[root@server ~]# perl -e 'print "File Exists\n" if -e "/newmount/testfile";'
[root@server ~]#
这里有趣的是:
当我尝试使用更新版本的 解释器(如 perl,v5.8.8)它可以工作:
[root@server ~]# perl -e 'print "File Exists\n" if -e "/newmount/testfile";'
File Exists
[root@server ~]#
我在旧的 Perl 上缺少什么?
提前致谢!
【问题讨论】:
-
有趣的是 v5.8.8 不被认为是旧的 perl。
-
它是……而 5.005_03 是古老的 perl。
-
如果你有更新的 Perl,你为什么要关心?这只是好奇还是您需要它来使用 5.005_03 版本?
-
1999 年 3 月是该版本的发布日期...如果 Perl 这么旧,那么如果这确实不仅仅是一个测试,那么这个盒子就会落后一些更新。
-
可以给mount命令吗?在熔断器安装的情况下存在一些问题。您还可以使用 strace 查看两个版本的 perl 中的系统调用。