假设我有一个使用创建的文本文件Data::Dumper,大致如下:
my $x = [ { foo => 'bar', asdf => undef }, 0, -4, [ [] ] ];
我想读回该文件并获取$x
后退。我试过这个:
my $vars;
{
undef $/;
$vars = <FILE>;
}
eval $vars;
但这似乎不起作用——$x
不仅没有定义,当我尝试使用它时,我收到一条警告
全局符号 $x 需要显式的包名称。
这样做的正确方法是什么? (是的,我知道它很难看。它是一个快速实用脚本,而不是生命支持系统。)
正如其他人已经说过的,您可能最好以更好的序列化格式存储数据:
-
Storable- 这既快速又简单,但相当特定于 Perl(但可以轻松满足您在相对不重要的脚本中快速解决方案的需求)
-
YAML, 使用YAML模块,或YAML::小, or YAML::任何作为包装器来利用系统上可用的任何 JSON 模块
-
JSON, 使用JSON模块,或JSON::XS为了更快的速度(或JSON::任意作为包装器来利用系统上可用的任何 JSON 模块)
- XML,使用XML-简单模块,或其他 XML 模块之一。
就我个人而言,我认为我的目标是 YAML 或 JSON...没有比以下更容易的了:
my $data = YAML::Any::LoadFile($filename);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)