解析perl数组

时间:2011-11-25 12:37:07

标签: perl perl-data-structures

我不熟悉perl并且正在尝试编辑irssi翻译脚本。 Web请求的结果返回为:

$result = {
 "data" => {
  "translations" => [
   {
    "translatedText" => "Halloween"
   }
  ]
 }
}

我如何只获取translatedText部分,以便

$string = 'Halloween'

感谢。

2 个答案:

答案 0 :(得分:7)

"万圣节"可以获得:

$result->{"data"}->{"translations"}->[0]->{"translatedText"}

第一个之后的箭头可以省略,所以更短的变体是:

$result->{"data"}{"translations"}[0]{"translatedText"}

基本上你有不同层次的多个间接:

  • 引用哈希
  • 其数据" key是对另一个哈希的引用
  • "翻译"最后一个哈希的键是对数组的引用
  • 该数组的第一个元素是对哈希
  • 的引用
  • " translatedText"该哈希的键是一个字符串

答案 1 :(得分:2)

那将是

$result->{data}->{translations}->[0]->{translatedText};

$result是哈希引用。关键的“数据”指向另一个散列引用,它具有指向数组ref的键“转换”。该数组ref中的第一个也是唯一一个元素有一个键“translatedText”,它指向感兴趣的数据:'Halloween'。