perl
  • perl-data-structures
  • 2011-11-25 78 views 0 likes 
    0

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

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

    我怎么能只获取translatedText部分,使

    $string = 'Halloween' 
    

    感谢。

    回答

    2

    这将是

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

    $result是散列REF。关键'数据'指向另一个散列引用,它有一个指向数组ref的关键'转换'。数组ref中的第一个也是唯一的元素有一个关键字'translationText',它指向感兴趣的数据:'万圣节'。

    7

    “万圣节”可以被获得为:

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

    的箭头的第一个可以被省略后,所以甚至更短的变体将是:

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

    基本上你有在多个间接寻址不同级别:

    • 参考哈希
    • 它的“数据”键是到另一个散列的引用
    • 最后散列是一个数组
    • 该数组的第一元素的引用的“转换”键是将散列的引用
    • 的“该散列的“translatedText”键是字符串
    相关问题