Perl 模块 Mac::PropertyList 用于 plist XML 文件

Posted

技术标签:

【中文标题】Perl 模块 Mac::PropertyList 用于 plist XML 文件【英文标题】:Perl module Mac::PropertyList for plist XML files 【发布时间】:2012-08-30 09:46:19 【问题描述】:

我正在使用Mac::PropertyList 模块来读取plist 兼容的XML 文件。函数plist_as_perl() 在“unblessed perl data structure"”中返回plist/XML 文件内容。这是我卡住的地方,因为我不知道如何访问其中包含的数据。

这是程序

use Mac::PropertyList;

print "\nbefore parsing the plist ...";
my $data  = Mac::PropertyList::parse_plist_file("abc.xml");

my $pvar = Mac::PropertyList::plist_as_perl($data);

现在如何使用 pvar?

谢谢

【问题讨论】:

创建 $pvar 为 $pvar = $data->as_perl;(见下文) 【参考方案1】:

如果你想看看结构里面是什么,可以使用Data::Dumper:

use Data::Dumper;
print Dumper $pvar;

【讨论】:

$VAR1 = '$VAR = ARRAY(0x828f5a0)' 好像不是数据结构。它是一个字符串。 好的,可能是,它已经读取了整个 XML 文件。如何打印这个字符串?【参考方案2】:

尝试使用 Data::Dumper 或 YAML 或 JSON 或 Data::Dump 或 Data::Dump::Streamer 或任何其他模块...转储数据和转储变量。或者使用调试器。

更新:我发现如果你像这样创建 pvar 可以正常工作:my $pvar = $data->as_perl; 然后你可以转储它.. 不要问我为什么;--(

【讨论】:

感谢您的回答。我使用 Data::Dumper 打印 pvar,输出为 $VAR1 = '$VAR = ARRAY(0x828f5a0)',但我如何才能获得 pvar 中包含的真正有用的数据? 我不知道,我从来没有在这里问过问题!别出汗,没什么大不了的。 嗯,plist_as_perl 的文档记录不正确。它应该返回一个 Perl 代码字符串,例如 Data::Dumper。 @briandfoy 我以为你可能会加入。你确定这不是 plist_as_perl 中的错误吗?我认为 as_data 实际上在那里更有用,可以获得没有任何对象的数据结构 嗯,这是一个错误,它没有做我想要做的事情,而且令人困惑。

以上是关于Perl 模块 Mac::PropertyList 用于 plist XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

perl 模块的创建以及制定perl 模块的路径

perl的更新与模块的安装

Perl模块推荐23——Perl::Shell

如何使用多个版本的 Perl 在 Perl 模块中安装脚本?

Perl 模块安装教程总结

安装perl模块其实没有那么难