【问题标题】:perl hash not reading from param ()perl 哈希未从 param () 读取
【发布时间】:2012-12-11 14:39:22
【问题描述】:

我无法让 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'});

请帮忙。

【问题讨论】:

  • 您对%spanish_url 是什么以及param('venue') 中的例外情况只字未提。我打赌你只是没有以某种方式接收参数。
  • 确保在调试器中检查 param('venues') 的值。这可以通过调试器中的 x 命令来完成。

标签: perl cgi param


【解决方案1】:

您是否尝试过打印参数中的值以查看它是什么?哈希键必须准确。可能你的参数中有key\nKey 之类的东西。 Data::Dumper 模块(perl 5 中的核心模块)非常适合这种调试。例如:

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

【讨论】:

  • 我尝试自己打印 param('venue') 并打印出正确的值。 'venue' 是一个 popup_menu,它从 .txt 文件中获取其值。我在从该文件中获取的值上使用了 chomp,所以我不认为它是一个流浪的换行符。我尝试了 TLP 的建议,得到了$VAR1 = undef;,这让我认为这与我为哈希分配值的方式有关。
  • 好了,现在您知道如何调试它了。如果不看代码,我很难说出你做错了什么。
猜你喜欢
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 2015-04-25
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多