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

标签 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 上搜索也没有任何帮助。

最佳答案

正如 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

关于windows - 为什么 perl 看不到 Windows 中存在的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222532/

相关文章:

c++ - Windows模拟的奇怪行为

windows - Visual C++和并发线程..为什么会这样?

windows - ShardStorage自动上线

regex - Perl 字符串包含括号

arrays - 将 PostgreSQL 数组数据类型解析为数组到 perl

windows - 保持 Y 的 X 个实例始终运行,windows

windows - 代码的不同行为(是否调试和不同的计算机)

perl - 如何停止在编译器阶段运行代码?

perl - 如何在另一个perl脚本中调用有8个参数的子例程

regex - perl的$-[0]对于非ASCII数据产生意外结果