使用拆分分隔符

时间:2016-03-05 20:56:19

标签: perl hash

我试图从Net :: SSH2命令中解析动态的大字符串输出中的多个值。为了做到这一点,我相信我需要将字符串转换为哈希值。

阅读一些,似乎split函数是使用列表和多个哈希创建此数据集的方法

如果我运行'打印$ data',我会看到类似这样的内容:

0 "Title1:\cJ Key:\cIValue\cJ\cI Key:\cIValue\cJ\ Key:\cIValue\cJTitle2:\cJ  Key:\cIValue\cJ\cI Key:\cIValue\cJ\cIValue\cJTitle3:\cJ Key:\cIValue\cJ\cI Key:\cIValue\cJ\cIValue\cJ"

或者以Data :: Dumper格式:

$VAR1 = 'Title1:
    aaa:    eee
            Key:    Value
            Key:    Value
            Key:    Value
    aab:    fff
            Key:    Value
            Key:    Value
            Key:    Value
    aac:    ggg
            Key:    Value
            Key:    Value
            Key:    Value
    aad:    hhh
            Key:    Value
            Key:    Value
            Key:    Value
'Title2:
    baa:    iii
            Key:    Value
            Key:    Value
            Key:    Value
    bab:    kkk
            Key:    Value
            Key:    Value
            Key:    Value
    bac:    lll
            Key:    Value
            Key:    Value
            Key:    Value
    bad:    mmm
            Key:    Value
            Key:    Value
            Key:    Value
'Title3:
    caa:    nnn
            Key:    Value
            Key:    Value
            Key:    Value
    cab:    ooo
            Key:    Value
            Key:    Value
            Key:    Value
    cac:    ppp
            Key:    Value
            Key:    Value
            Key:    Value
    cad:    qqq
            Key:    Value
            Key:    Value
            Key:    Value
';

我希望,将其转换为易于解析的格式,我可以使用\ cJ和\ cI字符进行拆分。有什么想法吗?

  • 编辑 我已经尝试使用YAML和YAML :: Syck作为输入流,但看起来YAML不接受数据,因为它不包含有效的YAML标题:

    YAML错误:预期的分隔符'---'    代码:YAML_PARSE_ERR_NO_SEPARATOR    线:2    文件:2  at /Library/Perl/5.18/YAML/Loader.pm第78行。

1 个答案:

答案 0 :(得分:-1)

这些数据看起来很像YAML。也许您可以尝试使用http://search.cpan.org/~ingy/YAML-1.15/lib/YAML.pod来解析它?