【发布时间】:2013-02-23 02:09:40
【问题描述】:
我可以访问从我的 Web 代码调用的 Perl 模块,该模块通过 AJAX 或 curl 以通常的 URI 编码形式(即myperl.pl?var1=val2&var2-val2&var3=val3)传递查询参数。
如何从命令行测试相同的模块?
【问题讨论】:
标签: perl debugging shell command-line
我可以访问从我的 Web 代码调用的 Perl 模块,该模块通过 AJAX 或 curl 以通常的 URI 编码形式(即myperl.pl?var1=val2&var2-val2&var3=val3)传递查询参数。
如何从命令行测试相同的模块?
【问题讨论】:
标签: perl debugging shell command-line
只要你在属性下将程序设置为可执行,那么:
./program_name.pl param1 param2 param3
应该可以。除非我看错了问题。
【讨论】:
如果它是一个 CGI 脚本,那么它可能会通过检查 QUERY_STRING 环境变量来找到这些变量;因此,您可以尝试从 shell 设置该变量。例如,如果你使用 Bash,你可以这样写:
QUERY_STRING='var1=val2&var2=val2&var3=val3' perl myperl.pl
或者如果您愿意:
export QUERY_STRING='var1=val2&var2=val2&var3=val3'
perl myperl.pl
(请注意,您可能还需要设置其他环境变量,可能还需要设置标准输入。)
【讨论】:
如果您使用的是 CGI.pm,那么我相信 params() 函数会从命令行返回参数。
@vars = $query->param
例如
myperl.pl "var1=value1&var2=value2&var3=value3"
param() 方法将变量作为列表返回。
【讨论】: