Perl的平台无关性与相关性
Perl是跨平台的脚本语言。公司的产品属于分布式的系统,涉及了Windows、Linux。因此测试工作我们使用了Perl语言。
最近,Linux产品测试的兄弟过来找我,说之前在Windows下使用过的的Perl测试工具在Linux不好用了。
拿过来一试,发现一些pm包加载不进来了。这让我百思不得其解,因为开发此工具的时候,一直强调的一点就是不允
许使用与操作系统平台相关联的pm包。
那就仔细调试一下吧,一层一层的剥离,最后找到了__FILE__这个特殊变量。这个特殊变量保存的是当前文件名称,但
是在不同的操作系统下,表现却稍有不同。在Windows下,__FILE__保存了当前文件的名称以及其绝对路径,而在Linux下
它仅仅保存了当前文件的名称。因为开发这个模块的童鞋需要获取当前文件的路径,所以在windows下他把文件名称去掉就
行了。但是未曾想,Linux下根本就没给出当前文件的绝对路径,问题也就出现了。于是使用$ENV('PWD')取代之。程序顺利
的跑起来了。
看来特殊变量也不是完全与操作系统无关的呀,以后我也得注意点。