my $attr; if ($selector =~ s!/?\@(\w+)$!!) { $attr = $1; }; ... my @nodes; if (! defined $attr) { @nodes = map { $_->as_trimmed_text } $tree->findnodes($selector); } else { @nodes = $tree->findvalues("$selector/\@$attr"); };