use v5.12; use warnings; use Mojo::DOM; my $data = join "", ; my $dom = Mojo::DOM->new($data); say &t::page( TITLE => $dom->at('title'), NAME => $dom->at('name'), ENTRIES => \&entries, ); sub entries { map { t::entry ( TITLE => $_->at("title"), HREF => $_->at("link")->{href}, DESC => $_->at('media\:group > media\:description') ); } $dom->find('entry')->each ; } package t; # poor man's templates sub page { my %p = @_; << "____" }

$p{ TITLE }

$p{ NAME } ____ sub entry { my %p = @_; << "____" }
  • [$p{ HREF }|$p{ TITLE }]

    $p{ DESC }

  • ____ package main;