我有一个用Perl编写的框架,它设置了一堆环境变量来支持进程间(通常是子进程)通信.我们在
XML-ish文件中保留一组键/值对.我们试图让关键名称驼峰式的东西像这样.这一切都运作良好.
最近我们有机会将控制(链)流程从Windows传递到UNIX.当我们将%ENV散列吐出到来自Windows的文件时,这些东西会变成SOMETHINGLIKETHIS.当Unix进程获取文件并重新加载环境并查找$ENV {somethingLikeThis}的值时,它不存在,因为UNIX区分大小写(从Windows端,相同的代码工作正常).
我们已经退回并将所有键更改为UPPERCASE并解决了问题,但这很乏味并且给用户带来了痛苦.有没有办法让Windows上的Perl保留环境哈希键的字符大小写?
解决方法
我相信你会发现Windows环境变量实际上是不区分大小写的,因此键是大写的,以避免混淆. 这样,没有任何区分大小写概念的Windows脚本可以使用与其他所有内容相同的变量.