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 );
}