perl { use List::Util qw{ max } } ; open xml.xml ; my $names = /breakfast_menu/food/name/text() ; my $maxlength = {max(map length, @$names)} ; my $foods = /breakfast_menu/food ; for my $food in { sort @$foods } { my $name = $food/name ; my $price = $food/price ; perl { printf "%-${maxlength}s %s\n", $name, $price } ; }