写入Perl中的数据部分

Bor*_*pen 2 perl

__DATA__Perl 的数据部分读取它非常容易.以下代码使用预先存在的DATA句柄:

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

__DATA__
1
2
The End of The End
Run Code Online (Sandbox Code Playgroud)

生产:

- 1
- 2
- The End of The End
Run Code Online (Sandbox Code Playgroud)

但是我没有找到任何编写数据的简洁方法.例如,我尝试过以下方法:

use feature say;

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

__DATA__
foo bar
Run Code Online (Sandbox Code Playgroud)

打印到STDOUTSTDERR作为expectet:

perl write.pl 2> /dev/null 
Some Message
Run Code Online (Sandbox Code Playgroud)

但印刷品DATA什么都不做:

tail -2 write.pl 
__DATA__
foo bar
Run Code Online (Sandbox Code Playgroud)

我也看过CPAN的几个模块,但我总是只找到读取支持,而不是写入.感谢任何提示和帮助!

mob*_*mob 9

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

其他一切都是黑魔法.将输入和程序状态存储在单独的文件(或数据库)中.

  • @BorisDäppen*你可能不会介意黑暗魔法,但是在你非常介意之后必须维护你的软件的人. (2认同)
  • @BorisDäppen总有一天,有人可能会因为这样的解决方案而咆哮你,并且有人可能会成为你.另一方面...... [这是一个非常酷的解决方案](https://www.youtube.com/watch?v=MQm5BnhTBEQ). (2认同)