perl - 写入 Perl 中的数据部分

标签 perl

从 Perl 中的数据部分 __DATA__ 读取起来非常容易。 以下代码使用预先存在的 DATA 句柄:

foreach (<DATA>) {
    print("- $_");
}

__DATA__
1
2
The End of The End

产生:

- 1
- 2
- The End of The End

但是我还没有找到任何将数据写入该部分的巧妙方法。 例如,我尝试过以下操作:

use feature say;

say STDERR 'Some Error';
say STDOUT 'Some Message';
say DATA   'Some Data';

__DATA__
foo bar

打印到 STDOUTSTDERR 按预期工作:

perl write.pl 2> /dev/null 
Some Message

但是打印到 DATA 根本不执行任何操作:

tail -2 write.pl 
__DATA__
foo bar

我还查看了 CPAN 中的几个模块,但我总是只发现对读取的支持,而不是写入。 感谢您的任何提示和帮助!

最佳答案

您可以使用文本编辑器写入 DATA 部分。

其他都是dark magic 。将输入和程序状态存储在单独的文件(或数据库)中。

关于perl - 写入 Perl 中的数据部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061214/

相关文章:

perl - 是否有支持 SSL/TLS 的核心 Perl 模块?

xml - 使用 perl 解析大型 (100 Mb) XML 文件时出现 "Out of memory"

Perl - 将 lib 与具有依赖关系的 perl 模块一起使用

perl - 如何在 Perl 中打印哈希的哈希?

php - 是否有在 LAMP 堆栈上运行的 DotNetOpenAuth 等效项?

perl - 无法使用 Strawberry-Perl 在 Windows 7 64 位上安装模块 pp

perl - Moose:通过创建对象检查属性

perl - 编辑包含模式的第一个未注释行中第一次出现的模式

c++ - Perl XSPP - std::string 的多重定义

perl - 为什么我的哈希不是 undef?