The approach may be Perlish, but the syntax certainly isn't. I'd rather get all that spiffy functionality such as the double dot operator which I am guessing does a deep search but be able to write the data structure approximately like this instead:
$order = [
order => [
customer => [
. . .
],
item => [
price => 5,
qty => 10,
],
item => [
level => 'rush',
price => 2.5,
qty => 30,
],
item => [
level => 'rush',
price => 1.5,
qty => 50,
],
],
];
Of course what I'm really looking for here is something partway between a hash and an array which can store duplicate keys like an array but still access them in close to O(1) time.
XML syntax is really ugly, IMHO, and "there's more than one way to do it" just like Perl but unlike Perl only one of them works so it's of no help. Grouping delimiters such as the parenthesis (and, by extension, others like [{<>}] were invented long ago and are still popular because they work best!