0

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

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

如何仅获取已翻译的文本部分,以便

$string = 'Halloween'

谢谢。

4

2 回答 2

7

“万圣节”可以通过以下方式获得:

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

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

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

基本上,您在不同级别有多个间接:

  • 对哈希的引用
  • 它的“数据”键是对另一个哈希的引用
  • 最后一个哈希的“翻译”键是对数组的引用
  • 该数组的第一个元素是对哈希的引用
  • 该哈希的“translatedText”键是一个字符串
于 2011-11-25T12:40:07.377 回答
2

那将是

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

$result是一个哈希参考。键“数据”指向另一个哈希引用,该哈希引用具有指向数组引用的键“翻译”。该数组 ref 中的第一个也是唯一一个元素有一个键“translatedText”,它指向感兴趣的数据:“万圣节”。

于 2011-11-25T12:39:48.063 回答