$s="dfasdfasdfafd...."
1,000,000 文字近くの非常に大きなサイズの stringがあります。これをファイル ハンドルに変換して、この文字列がファイルから読み込まれたように見せたいと考えています。しかし、一時ファイルに保存して読みたくありません。
誰か私にいくつかの提案をしてもらえますか?
$s="dfasdfasdfafd...."
1,000,000 文字近くの非常に大きなサイズの stringがあります。これをファイル ハンドルに変換して、この文字列がファイルから読み込まれたように見せたいと考えています。しかし、一時ファイルに保存して読みたくありません。
誰か私にいくつかの提案をしてもらえますか?
文字列への参照を開きます。
use strict; use warnings; use autodie;
my $foo = "abc\ndef\n";
open my $fh, "<", \$foo;
while (<$fh>) {
print "line $.: $_";
}
出力:
line 1: abc
line 2: def
OO スタイルを使用してからIO::Stringパッケージを使用することもできます。
#!/usr/bin/perl
use strict;
use warnings;
use IO::String;
my $s="dfasdfasdfafd....\nabc";
my $io = IO::String->new($s);
while (my $line = $io->getline()) {
print $line;
}
print "\nTHE END\n";
# write new line
$io->print("\nappend new line");
# back to the start
$io->seek(0, 0);
while ($io->sysread(my $line, 512)) {
print $line;
}
また、 IO::Handleパッケージに記述されているほとんどすべてのメソッドを使用できます。
このソリューションは、別のパッケージの一部が IO::Handle (IO::File) オブジェクトのみを受け入れてデータを操作する場合に役立ちます。