没有包或对象引用,无法调用方法"text"

rPa*_*thi -1 perl

以下是我的代码

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)

当我尝试运行这个我得到错误无法调用方法"文本"没有包或对象引用.

Bor*_*din 5

在标量上下文中,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->text0-text,两者都不意义