【问题标题】:Basic issue retrieve array or string from file using Storable retrieve使用可存储检索从文件中检索数组或字符串的基本问题
【发布时间】:2013-02-27 05:00:59
【问题描述】:

问题很简单,但我好像找不到:

我将$string 存储到$filename

store [$tempstring], $filename2[$m];

然后我尝试检索它:

my $tempinput = retrieve ($filename2[$m]);

我相信我只是得到参考,而不是字符串? 我可以使用命令将数据转换回原始字符串吗?

【问题讨论】:

  • 好的,确认此示例代码有效:#!/opt/perl/bin/perl use warnings;使用严格;使用可存储;我的@a = (1, 2, 3);存储(\@a,“array.dat”);我的@a2 = @{retrieve("array.dat")}; print "值为:$a2[1]";
  • 除非您确定永远不会在其他计算机甚至操作系统版本上检索,否则请使用 nstore,而不是 store。
  • 如果您只需要存储一个字符串,为什么还需要 Storable?

标签: perl storable


【解决方案1】:
 my $ref = [ $tempstring ];

创建一个数组,将$tempstring 分配给它(将它放在第一个元素中),然后返回对该数组的引用。

所以如果你想要返回字符串,你需要获取被引用数组的第一个元素的值。

 $ref->[0]

如果你这样做了

 my $ref = \$tempstring;

您无需创建数组,只需这样做

 $$ref

获取字符串。

【讨论】:

  • 请勾选答案旁边的标记来表示这一点。欢迎使用 StackOverflow!
  • 这是我为存储字符串然后检索它所做的: my $ref = [ $tempstring ];商店($ref, $filename2[$m]);我的@a2 = @{retrieve($filename2[$m])};
猜你喜欢
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 2013-12-25
  • 2018-03-12
  • 1970-01-01
  • 2012-04-20
相关资源
最近更新 更多