my %hash = (
response => {
blogs => [
{
url => 'equipo.tumblr.com',
name => 'equipo',
updated => 1346015230,
},
{
url => 'linux.tumblr.com',
name => 'linuxmint',
updated => 1345967468,
},
],
},
);
my @urls = map { $_->{url} } @{$hash{response}{blogs}};
perldoc perlreftut and peldoc perlref can get you started with references. perldsc and perllol can walk you through manipulating datastructures built using references. I used map (perldoc -f map) to perform the actual data structure transform. But if you're new to some of this it might be easier to achieve the same thing using a foreach loop (perldoc perlsyn) and push (perldoc -f push):
my @urls;
foreach my $blog ( @{$hash{response}{blogs}} ) {
push @urls, $blog->{url};
}
Either way @url ends up containing the same list of URL's.
If you don't mind spending a little on a good book, Intermediate Perl is a great tutorial on references, data-structures, classes, and objects (as well as a few other useful things).
|