以下是我的代码
use warnings;
use LWP::Simple;
use WWW::Mechanize;
use WWW::Mechanize::Link;
my $mech = new WWW::Mechanize();
my $link = new WWW::Mechanize::Link();
my $file = 'source1.txt';
my $filename = 'links2.txt';
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
open my $info, $file or die "Could not open $file: $!";
while( my $line = <$info>) {
$link = grep(/<a.*href=.*>/,$line);
print $fh $link->text;
}
close $fh;
Run Code Online (Sandbox Code Playgroud)
当我尝试运行这个我得到错误无法调用方法"文本"没有包或对象引用.
在标量上下文中,grep返回列表中"匹配"条件的项目数.所以,因为你的名单中只有一个项目,你的陈述
$link = grep( /<a.*href=.*>/, $line )
Run Code Online (Sandbox Code Playgroud)
$link根据是否$line匹配正则表达式将设置为1或0/<a.*href=.*>/
那你有
print $fh $link->text
Run Code Online (Sandbox Code Playgroud)
这无论是来电1->text或0-text,两者都不意义