Как уже говорили другие, вы должны разыменовать ссылку. Функция keys
требует, чтобы ее аргумент начинался с % :
Мои предпочтения:
foreach my $key (keys %{$ad_grp_ref}) {
Согласно Конвею :
foreach my $key (keys %{ $ad_grp_ref }) {
Угадай, кого ты должен слушать ...
Возможно, вы захотите прочитать Справочную документацию по Perl .
Если вы обнаружите, что делаете много вещей со ссылками на хэши и хэши списков и списков хэшей, вы можете подумать об использовании объектно-ориентированного Perl . В документации по Perl есть много хороших маленьких учебников .
Попробуйте этот XPath:
/object/data[@type="me"]
Итак:
$myDataObjects = $simplexml->xpath('/object/data[@type="me"]');
И если объект
не является корнем вашего документа, используйте // объект / данные [@ type = "me"]
вместо этого.