Terrific! That did the job. I've used $cgi->Vars for ages and never had this trouble before. Guess I'd never tried to do this before.
Thanks everyone for all your help. Karl Ash Berlin wrote: > Vars does crazy tied stuff: > >> Many people want to fetch the entire parameter list as a hash in which >> the keys are the names of the CGI parameters, and the values are the >> parameters' values. The Vars() method does this. Called in a scalar >> context, it returns the parameter list as a tied hash reference. >> Changing a key changes the value of the parameter in the underlying >> CGI parameter list. Called in a list context, it returns the parameter >> list as an ordinary hash. This allows you to read the contents of the >> parameter list, but not to change it. > > Try doing the following instead > > my $cgihash = { $cgi->Vars }; > > > On 26 Feb 2008, at 11:17, Karl Dane wrote: > >> Right! So - there's something REALLY weird going on here... >> >> To answer Simon, cgihash is from perl's CGI lib: my $cgi = new CGI; my >> $cgihash = $cgi->Vars; >> >> Shouldn't be anything odd about it. But obviously it's behaving >> differently for some reason. >> >> New example. cgihash continues to act as before, but cgihash2 works >> fine... : >> >> cgihash: >> >> should tell me this is a hash: >> [% cgihash %] >> >> dump out the contents of the hash: >> [% USE Dumper %] >> [% Dumper.dump(cgihash) %] >> >> Now give me the keys: >> [% FOREACH key = cgihash.keys %] >> [% key %] >> [% END %] >> >> cgihash2: >> >> [% >> cgihash2 = { >> 'a' => 'newentry', >> 'newbooking' => '1', >> 'day' => '06', >> 'monthdigit' => '02', >> 'year' => '2008', >> 'room' => '9', >> 'gender' => 'male', >> 'beds' => '3', >> 'nights' => '2', >> 'submit' => 'Book' >> }; >> >> %] >> >> dump out the contents of the hash: >> [% USE Dumper %] >> [% Dumper.dump(cgihash2) %] >> >> Now give me the keys: >> [% FOREACH key = cgihash2.keys %] >> [% key %] >> [% END %] >> >> >> [[ TEMPLATE ENDS ]] >> >> --- >> Output: >> >> cgihash: >> >> should tell me this is a hash: >> HASH(0x8830200) >> >> dump out the contents of the hash: >> >> $VAR1 = { >> 'a' => 'newentry', >> 'newbooking' => '1', >> 'day' => '06', >> 'monthdigit' => '02', >> 'year' => '2008', >> 'form_FirstName' => 'Charles ', >> 'form_Name' => 'Bronson', >> 'form_Address1' => 'home', >> 'form_Address2' => '', >> 'form_Address3' => '', >> 'form_Town' => 'Ambleside', >> 'form_County' => '', >> 'form_Postcode' => '', >> 'form_Country' => 'UK', >> 'form_Email' => '[EMAIL PROTECTED] >> <mailto:'[EMAIL PROTECTED]>', >> 'form_TelephoneNo' => '', >> 'room' => '9', >> 'gender' => 'male', >> 'beds' => '3', >> 'nights' => '2', >> 'submit' => 'Book' >> }; >> >> >> Now give me the keys: >> >> >> cgihash2: >> >> >> >> dump out the contents of the hash: >> >> $VAR1 = { >> 'monthdigit' => '02', >> 'a' => 'newentry', >> 'nights' => '2', >> 'submit' => 'Book', >> 'room' => '9', >> 'newbooking' => '1', >> 'beds' => '3', >> 'day' => '06', >> 'year' => '2008', >> 'gender' => 'male' >> }; >> >> >> Now give me the keys: >> >> monthdigit >> >> a >> >> nights >> >> submit >> >> room >> >> newbooking >> >> beds >> >> day >> >> year >> >> gender >> >> >> >> [[ TEMPLATE ENDS ]] >> >> >> >> >> >> Clinton Gormley wrote: >>> On Tue, 2008-02-26 at 11:00 +0000, Karl Dane wrote: >>>> I guess my example wasn't a very good one - I just wanted to >>>> demonstrate >>>> that I was getting _nothing_ when using the keys method. If it had >>>> worked as expected, then it should have returned something like >>>> 'ARRAY(0x8a8ca58)' >>> >>> ... which is what I get when I try it on my system, with this code: >>> >>> [% >>> >>> cgihash = { >>> 'a' => 'newentry', >>> 'newbooking' => '1', >>> 'day' => '06', >>> 'monthdigit' => '02', >>> 'year' => '2008', >>> 'room' => '9', >>> 'gender' => 'male', >>> 'beds' => '3', >>> 'nights' => '2', >>> 'submit' => 'Book' >>> }; >>> >>> %] >>> >>> should tell me this is a hash: >>> [% cgihash %] >>> >>> dump out the contents of the hash: >>> [% USE Dumper %] >>> [% Dumper.dump(cgihash) %] >>> >>> Now give me the keys: >>> [% cgihash.keys %] >>> >>> [[ TEMPLATE ENDS ]] >>> ------------------------------ >>> OUTPUT: >>> >>> should tell me this is a hash: >>> HASH(0x287c4a0) >>> >>> dump out the contents of the hash: >>> >>> $VAR1 = { >>> 'monthdigit' => '02', >>> 'a' => 'newentry', >>> 'nights' => '2', >>> 'submit' => 'Book', >>> 'room' => '9', >>> 'newbooking' => '1', >>> 'beds' => '3', >>> 'day' => '06', >>> 'year' => '2008', >>> 'gender' => 'male' >>> }; >>> >>> >>> Now give me the keys: >>> ARRAY(0x28c7170) >>> >>> [[ TEMPLATE ENDS ]] >> >> _______________________________________________ >> templates mailing list >> templates@template-toolkit.org <mailto:templates@template-toolkit.org> >> http://mail.template-toolkit.org/mailman/listinfo/templates > _______________________________________________ templates mailing list templates@template-toolkit.org http://mail.template-toolkit.org/mailman/listinfo/templates