【问题标题】:Perl module Mac::PropertyList for plist XML filesPerl 模块 Mac::PropertyList 用于 plist XML 文件
【发布时间】: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;(见下文)

标签: perl plist


【解决方案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 实际上在那里更有用,可以获得没有任何对象的数据结构
  • 嗯,这是一个错误,它没有做我想要做的事情,而且令人困惑。
猜你喜欢
  • 1970-01-01
  • 2013-12-12
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
相关资源
最近更新 更多