Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.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
Perl:读取web文本文件并;开放式;信息技术_Perl_Http_File Io_While Loop - Fatal编程技术网

Perl:读取web文本文件并;开放式;信息技术

Perl:读取web文本文件并;开放式;信息技术,perl,http,file-io,while-loop,Perl,Http,File Io,While Loop,我正在尝试创建一个脚本,该脚本将读取文本文件,然后对其进行分析,而不管文本文件是联机还是脱机 脱机部分是使用 open(FILENAME, "anyfilename.txt") analyze_file(); sub analyze_file { while (<FILENAME>) {analyze analyze} } open(文件名为“anyfilename.txt”) 分析_文件(); 子文件{ while(){analyze} } 现在,对于在线部分,是否需要

我正在尝试创建一个脚本,该脚本将读取文本文件,然后对其进行分析,而不管文本文件是联机还是脱机

脱机部分是使用

open(FILENAME, "anyfilename.txt")
analyze_file();

sub analyze_file {
   while (<FILENAME>) {analyze analyze}
}
open(文件名为“anyfilename.txt”)
分析_文件();
子文件{
while(){analyze}
}
现在,对于在线部分,是否需要阅读网站上的文本文件,然后“打开”它

我希望做到的是:

if ($offline) {
   open(FILENAME, "anyfilename.txt")
}
elsif ($online) {
   ##somehow open the http web text so that I can do a while (<FILENAME>) later
}

analyze_file();

sub analyze_file {
   while (<FILENAME>) {analyze analyze}
}
if($offline){
打开(文件名为“anyfilename.txt”)
}
elsif(在线){
##以某种方式打开httpweb文本,以便稍后我可以执行一段时间()
}
分析_文件();
子文件{
while(){analyze}
}
这是“得到”的意思http://weblink.com/textfile.txt;)“但它会创建一个字符串。我不能用那根绳子玩一会儿

有人知道如何做到这一点吗?

很简单,只需使用

使用LWP::Simple;
如果($离线){

打开(文件名,“+1,这可能是正确的方法。但根据具体情况,打开标量的文件句柄对我来说似乎很重要,我会使用我建议的解决方案,将标量拆分为一个行数组。@sidyll为什么打开标量的文件句柄会太多?BradGilbert谢谢!!@Brad Gilbert sla是什么意思sh在\$的上下文中实际上是这样做的?通常情况下,如果将它后面的内容置为空。为什么代码会工作,因为文本中的$被置为空?我们在有效的Perl编程中也经常谈到这一点。这是一个很好的技巧,可以节省大量的编码和麻烦。@JohnTan我不知道“将它后面的内容置为空”是什么意思。
use LWP::Simple;
if ($offline) {
   open( FILENAME, '<', "anyfilename.txt" )
}
elsif ($online) {
   my $text = get 'http://example.com';
   open( FILENAME, '<', \$text );
}