perl哈希未从param()读取

perl哈希未从param()读取,perl,cgi,param,Perl,Cgi,Param,我无法让perl读取从param()传递给它的哈希键 这是行不通的 append_file('pending_entries.txt',$spanish_url{param('venue')}); 也不是这个, my $var = $spanish_url{param('venues')}; append_file( 'pending_entries.txt', $var ) ; 也不是这个 my $ven = param('venue'); my $var = $spanish_url{$

我无法让perl读取从param()传递给它的哈希键

这是行不通的

append_file('pending_entries.txt',$spanish_url{param('venue')});
也不是这个,

my $var = $spanish_url{param('venues')};
append_file( 'pending_entries.txt', $var ) ;
也不是这个

my $ven = param('venue');
my $var = $spanish_url{$ven};
append_file( 'pending_entries.txt', $var ) ;
但这是真的

append_file('pending_entries.txt',$spanish_url{'key'});

请帮助。

您是否尝试打印参数中的值以查看它是什么?哈希键必须是精确的。您的参数中可能有类似于
key\n
key
的内容。该模块(Perl5中的核心模块)非常适合这种调试。例如:

use Data::Dumper;
$Data::Dumper::Useqq = 1;
print Dumper param('venue');

你没有提到什么是
%spanish_url
,什么是
param('vention')
。我打赌您只是没有以某种方式接收到参数。请确保在调试器中检查param('viouses')的值。这可以通过调试器中的x命令来完成。我试图自己打印param('venue'),它确实打印出了正确的值。”“地点”是一个弹出菜单,其值来自.txt文件。我使用了chomp从该文件中获取的值,所以我不认为这是一个错误的换行符。我尝试了TLP的建议,得到了
$VAR1=undef这让我觉得这与我给散列赋值的方式有关。现在你知道如何调试它了。我很难不看代码就知道你做错了什么。