in reply to Re: Re: CGI params
in thread CGI params

Yet dws is right. This works for me:
use CGI qw/:standard/; my %params = map { $_ => scalar param($_) } param(); print '-->' . $params{'listname'}. '<--' . "\n";
Note that I added a "scalar". The error was produced by three things:
  1. You're trying to use A => B as an expression for map, which doesn't work, as "=>" is actually a comma. So map only saw the "A" as the expression, and the "B" as the first item of the list fed to it.
  2. You used single quotes around "$_" which made CGI.pm look for the parameter "'$_'", literally, which doesn't exist. Combine that with...
  3. You used param() in a list context, which for a non-existing parameter produces an empty list. "scalar" fixes that. So, in summary, you were filling %params with a list ( 'listname', 'wtf' ), as everything else dropped away.