I'd probably not use so many loops in XML::LibXML:
#!/usr/bin/perl
use warnings;
use strict;
use XML::LibXML;
my $review_details = 'XML::LibXML'->load_xml( location => shift );
for my $review ($review_details->findnodes('/results/review')) {
print $review->findvalue($_), "\n" for 'movie_title', 'reviewer';
}
Or, I'd use XML::XSH2, a wrapper around XML::LibXML:
open file.xml ;
for /results/review echo :s (movie_title) {"\n"} (reviewer) ;