1

我可以访问从我的 Web 代码调用的 Perl 模块,该模块以通常的 URI 编码形式(即myperl.pl?var1=val2&var2-val2&var3=val3)从 AJAX 或 curl 传递查询参数。

如何从命令行测试相同的模块?

4

4 回答 4

6

如果它是一个 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

(请注意,您可能还需要设置其他环境变量,可能还需要设置标准输入。)

于 2013-03-07T18:15:48.383 回答
3

它使用CGI模块吗?如果是这样,请参阅文档的调试部分。

myperl.pl var1=val2&var2-val2&var3=val3
于 2013-03-07T18:15:08.963 回答
2

如果您使用的是 CGI.pm,那么我相信 params() 函数会从命令行返回参数。

@vars = $query->param

例如

myperl.pl "var1=value1&var2=value2&var3=value3"

param() 方法将以列表形式返回变量。

于 2013-03-07T18:21:11.897 回答
1

只要您在属性下将程序设置为可执行文件,那么:

./program_name.pl param1 param2 param3 

应该管用。除非我误读了这个问题。

于 2013-03-07T18:15:25.213 回答