Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在perl中将字符串转换为文件句柄?_String_Perl_Filehandle - Fatal编程技术网

String 如何在perl中将字符串转换为文件句柄?

String 如何在perl中将字符串转换为文件句柄?,string,perl,filehandle,String,Perl,Filehandle,我有一个非常大的字符串,将近1000000个字符。我想将其转换为文件句柄,使其看起来像是从文件中读取的字符串。但我不想将它存储到临时文件中并读取它 有人能给我一些建议吗?打开对字符串的引用: use strict; use warnings; use autodie; my $foo = "abc\ndef\n"; open my $fh, "<", \$foo; while (<$fh>) { print "line $.: $_"; } 您可能希望使用OO样式,然

我有一个非常大的字符串,将近1000000个字符。我想将其转换为文件句柄,使其看起来像是从文件中读取的字符串。但我不想将它存储到临时文件中并读取它


有人能给我一些建议吗?

打开对字符串的引用:

use strict; use warnings; use autodie;

my $foo = "abc\ndef\n";
open my $fh, "<", \$foo;

while (<$fh>) {
  print "line $.: $_";
}

您可能希望使用OO样式,然后使用包

您也可以使用包中描述的几乎所有方法


当另一个包的某些部分只接受IO::Handle(IO::File)对象来操作数据时,此解决方案非常有用。

将单个str拆分为数组。以相同的方式写入字符串没有问题。可以是有用的格式!
line 1: abc
line 2: def
#!/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;
}