####
//City[@name=$current_city]/StreetList/Street[@bars!='none']/@name
####
open cities.xml ;
my $current_city = 'Some City' ;
echo //City[@name=$current_city]/StreetList/Street[@bars!='none']/@name ;
####
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
use XML::LibXML;
# Only needed if the city name can contain a double quote. Tested with "Some" City".
sub quote {
my $string = shift;
if ($string =~ /"/) {
my @substrings = split /"/, $string, -1;
$string = 'concat("' . join(q(", '"', "), @substrings) . '")';
} else {
substr $string, $_, 0, '"' for 0, -1;
}
return $string
}
my $current_city = 'Some City';
my $dom = 'XML::LibXML'->load_xml( location => shift );
my $quoted_city = quote($current_city);
my @streets = $dom->findnodes('//City[@name=' . $quoted_city . ']/StreetList/Street[@bars!="none"]');
say for map $_->findvalue('@name'), @streets;
####
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,