我被分配到一个项目 (PHP/MySQL),需要一些审查和可能的修复。
作为其中的一部分,计划检查我们通过 GET 和 POST 获得的所有变量的正确性。我们有一堆 PHP (.php) 和 Smarty (.tpl) 文件包含数千行代码,因此手动搜索所有 $_GET[...] 和 $_POST[...] 引用会很痛苦。所以我尝试这样做:
find . -name "*.php" -or -name "*.tpl" |
xargs perl -ne 'use feature say; say $1 while m/(\$_(GET|POST)\[[\s]*[\S]+[\s]*\])/g;' |
sort -u
基本上它会创建项目中所有 $_GET[...] 和 $_POST[...] 引用的列表,然后从中删除重复的值。但它没有用,因为我的开发机器上有 Perl 5.8.8,它不支持 5.10+ 功能“说”,我们的系统管理员说升级是不需要的。我不确定为什么,但他是老板。
那么,有没有办法用其他代码替换“say”,或者甚至用其他工具替换 Perl?
最佳答案
不要忘记模拟 say
非常容易:
sub say { print @_, "\n" }
只需将它添加到 Perl 代码的开头并像往常一样使用。
关于perl - 我如何在 Perl 5.8.8 中使用 'say'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260972/