Perl:读取网络文本文件和 "open"它

标签 perl http file-io while-loop

我正在尝试创建一个脚本来读取文本文件然后对其进行分析,无论文本文件是在线还是离线。

离线部分完成,使用

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

sub analyze_file {
   while (<FILENAME>) {analyze 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}
}

有“get('http://weblink.com/textfile.txt;)”但它创建了一个字符串。我不能用那个字符串做 while ()。

有谁知道如何做到这一点?

最佳答案

很简单,只需使用 open FILEHANDLE,MODE,REFERENCE open的风格.

use LWP::Simple;
if ($offline) {
   open( FILENAME, '<', "anyfilename.txt" )
}
elsif ($online) {
   my $text = get 'http://example.com';
   open( FILENAME, '<', \$text );
}

关于Perl:读取网络文本文件和 "open"它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618524/

相关文章:

c++ - 如何从我的 HTTP 服务器向客户端发送图像?

node.js - 当 URL 在浏览器中工作时,什么可能导致 "connect ETIMEDOUT"错误?

c - 使用getline逐行读取文件时内存泄漏

python - 在 Python 中快速拼接文件并获取它们的 md5

linux - 为什么我的 mod_perl 脚本会卡住我的服务器?

perl - 获取文件中最短和最长的序列

regex - 使用带有斜杠//或引号 '' |""的拆分模式有什么区别?

Perl 错误:在串联中使用未初始化的值 $DBI::err

python - 在 Python 中发送非 ASCII POST 请求?

Java 二进制 IO 写入和读取