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 文件的主要内容,如果未能解决你的问题,请参考以下文章