IB2017 has asked for the wisdom of the Perl Monks concerning the following question:
Hi monks
I want to POST a data structure (array of hashes) from a Perl script to a cgi on a server. I am doing something wrong with references and dereferencing, I guess.
My Perl script
#!/usr/bin/perl use strict; use LWP; use HTTP::Request::Common; my @AoH = ( { husband => "barney", wife => "betty", son => "bamm bamm", }, { husband => "george", wife => "jane", son => "elroy", }, { husband => "homer", wife => "marge", son => "bart", }, ); my $url = 'http://myurl.com/cgi-bin/memo.pl'; my $ua = LWP::UserAgent->new; my $request = POST($url, Content => [data=>[@AoH]]); my $response = $ua->request($request); print $response->content, "\n";
And to get the data on the server:
#!/usr/bin/perl -Tw use strict; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use Data::Dumper qw(Dumper); print header; my $q = CGI->new(); my @data = $q->param('data'); if (param('data')) { print "you sent ", param('data'); } else { print "error"; ; } foreach my $href (@data) { foreach my $key (keys(%$href)) { print "key: $key, value: $href->{$key}\n"; } }
I get an error message "Can't use string ("ARRAY(0x818064)") as a HASH ref" and if I print Dumper @data I can not - no matter what I try - dereference the hashes in the array. What am I doing wrong?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: POST array of hashes CGI
by LanX (Saint) on Nov 26, 2018 at 15:44 UTC | |
|
Re: POST array of hashes CGI
by 1nickt (Canon) on Nov 26, 2018 at 15:41 UTC | |
|
Re: POST array of hashes CGI
by IB2017 (Pilgrim) on Nov 26, 2018 at 16:54 UTC | |
by 1nickt (Canon) on Nov 26, 2018 at 17:36 UTC | |
by hippo (Archbishop) on Nov 26, 2018 at 17:02 UTC | |
by IB2017 (Pilgrim) on Nov 26, 2018 at 17:07 UTC | |
by haukex (Archbishop) on Nov 26, 2018 at 17:36 UTC | |
by IB2017 (Pilgrim) on Nov 26, 2018 at 17:50 UTC |