【问题标题】:How do I test my Web interface Perl program from the command line?如何从命令行测试我的 Web 界面 Perl 程序?
【发布时间】:2013-02-23 02:09:40
【问题描述】:

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

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

【问题讨论】:

    标签: perl debugging shell command-line


    【解决方案1】:

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

    myperl.pl var1=val2&var2-val2&var3=val3
    

    【讨论】:

      【解决方案2】:

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

      ./program_name.pl param1 param2 param3 
      

      应该可以。除非我看错了问题。

      【讨论】:

        【解决方案3】:

        如果它是一个 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 请求。您甚至没有指定 REQUEST_METHOD,这是在访问 QUERY_STRING 之前应该检查的。
        • 只是临时测试数据...不是计划中的访问方式。
        【解决方案4】:

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

        @vars = $query->param
        

        例如

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

        param() 方法将变量作为列表返回。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-23
          • 1970-01-01
          相关资源
          最近更新 更多