Exercise: split CGI
Given a string that looks like this:
my $str = 'fname=Foo&lname=Bar&email=foo@bar.com';
Create a hash where the keys are fname, lname, email or if the string looks like this
my $str = 'title=Stargates&year=2005&chapter=03&bitrate=128';
then create a hash where the keys are title, year, chapter, bitrate Use a single statement (with split) to achieve this.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @input = (
'fname=Foo&lname=Bar&email=foo@bar.com',
'ip=127.0.0.1&machine=foobar',
);
foreach my $str (@input) {
process($str);
}
sub process {
my $str = shift;
my @pairs = split /&/, $str;
my %data;
foreach my $p (@pairs) {
my ($k, $v) = split /=/, $p;
$data{$k} = $v;
}
print Dumper \%data;
}
$VAR1 = {
'email' => 'foo@bar.com',
'lname' => 'Bar',
'fname' => 'Foo'
};
$VAR1 = {
'ip' => '127.0.0.1',
'machine' => 'foobar'
};