如何在PHP';之类的perl脚本中转储所有查询变量;s打印(美元)?

如何在PHP';之类的perl脚本中转储所有查询变量;s打印(美元)?,perl,cgi,Perl,Cgi,我有一个从浏览器运行的perl脚本。我正在向它传递查询变量,但查询变量显示为johndoe%40test%2Ecom而不是johndoe@test.com 我想调试这些变量,看看它们在脚本开头是如何显示的 在PHP中,当访问url时: http://localhost/dump-variables.php?foo=1&bar=2&bis=johndoe%40test%2Ecom PHP脚本将包含以下代码: header('Content-type: text/plain');

我有一个从浏览器运行的perl脚本。我正在向它传递查询变量,但查询变量显示为
johndoe%40test%2Ecom
而不是
johndoe@test.com

我想调试这些变量,看看它们在脚本开头是如何显示的

在PHP中,当访问url时:

http://localhost/dump-variables.php?foo=1&bar=2&bis=johndoe%40test%2Ecom
PHP脚本将包含以下代码:

header('Content-type: text/plain');
print_r($_GET);
结果是:

Array
(
    [foo] => 1
    [bar] => 2
    [bis] => johndoe@test.com
)
Perl版本:5.010001

重要提示 我对正在使用的系统没有任何特殊访问权限(root/sudo),因此可能必须通过源代码包含模块…

尝试Data::Printer 加上

试试数据::打印机 加上


你已经标记了这个CGI,所以我首先建议

但是如果您打算使用CGI,并且假设使用CGI.pm,那么(从中):


你已经标记了这个CGI,所以我首先建议

但是如果您打算使用CGI,并且假设使用CGI.pm,那么(从中):



$\u GET
来自哪里?在问题中,它显示为如何在PHP中实现任务的示例。我将源代码下载到包含脚本的目录中,并添加了
使用打印机
(我尝试了
使用DDP
),但默认情况下未安装。我做错了什么?哦。我认为$\u GET是他在PHP中使用的一个变量。@cwd-该模块名为
Data::Printer
。不要下载源代码。使用cpan(或者更好的是cpanm)安装它。@jmcneirney-它是一个超全局数组,一个自动填充查询字符串中数据的数组。
$\u GET
来自哪里?在问题中,它显示为如何在PHP中实现任务的示例。我将源代码下载到包含脚本的目录中,并添加了
使用打印机
(我尝试了
使用DDP
),但默认情况下未安装。我做错了什么?哦。我认为$\u GET是他在PHP中使用的一个变量。@cwd-该模块名为
Data::Printer
。不要下载源代码。使用cpan(或者更好的是cpanm)安装它。@jmcneirney-它是一个超全局的数组,一个自动填充查询字符串中数据的数组。我将
使用CGI
更改为
使用CGI::Carp qw(fatalsToBrowser)
现在我得到
无法通过包“CGI”找到对象方法“new”在query-vars.pl第6行。
对应于行
my$q=CGI->new()@cwd-CGI::Carp是一个模块,用于在使用CGI时向客户端吐出错误消息。据我所知,它不提供任何基本的CGI处理,所以您仍然需要CGI本身。您可以添加CGI::Carp,但不要用它替换CGI。当我尝试添加它时,我刚刚得到一个错误500,没有任何关于错误的帮助:(使用CGI.pm..../script.CGI foo=bar确保脚本上的权限设置正确。如果脚本不可执行,则它将永远无法运行,服务器将准确报告该消息。使用类似于
0755
的掩码使用
chmod
。我将
使用CGI
更改为
使用CGI::Carp qw(fatalsToBrowser)
现在我无法通过query-vars.pl第6行的包“CGI”找到对象方法“new”。
它对应于行
my$q=CGI->new();
@cwd-CGI::Carp是一个在使用CGI时向客户端发送错误消息的模块。据我所知,它不提供任何基本的CGI处理,因此您仍然需要CGI本身。您可以添加CGI::Carp,但不要用它替换CGI。当我尝试添加它时,我刚刚得到一个错误500,没有任何关于错误的帮助:(使用CGI.pm../script.CGI foo=bar确保脚本上的权限设置正确。如果脚本不可执行,则它将永远无法运行,服务器将准确报告该消息。使用类似于
0755
的掩码的
chmod
 use DDP;
  ...

 p $_GET
use CGI;
use Data::Dump qw/ddx/;
my $q = CGI->new();
print $q->header('text/plain');
my %params = $q->Vars;

print "Content-type: text/plain\n\n"; # had to add this

ddx \%params;