为什么perl看不到windows中存在的文件?

时间:2014-10-06 18:32:04

标签: windows perl

在我的一个同事机器上,如果你只是寻找java,你可以找到它:

c:\>where java 
C:\Windows\system32\java.exe

但是,如果我在perl中进行此测试:

c:\>perl -e "print (-e 'c:\\windows\\system32\\java.exe' ? 'found' : 'not found')"
not found

(这在我的机器上运行正常)。我已经听说过某种奇怪的缓存,文件被伪装入,所以它们可以工作,但我不知道它可以被调用什么,而且我用Google搜索没有任何帮助。

1 个答案:

答案 0 :(得分:0)

正如Andrew Medico对问题的评论所述,问题是运行32位perl引起的混乱。

有问题的系统有“c:\ windows \ system32 \ java.exe”,但没有“c:\ windows \ syswow64 \ java.exe”。如果“c:\ windows \ system32 \ java.exe”似乎不存在,我可以通过查找“c:\ windows \ sysnative \ java.exe”来解决我的问题。

我发现这个描述非常有用:

http://www.samlogic.net/articles/32-64-bit-windows-folder-x86-syswow64.htm