【发布时间】:2014-05-02 13:09:19
【问题描述】:
我正在使用来自WWW::Mechanize 的一组链接,并且想简单地打印从页面中检索到的链接名称和网址的列表。奇怪的是,以$link->name() 开头的名称又以'?' 字符返回,其中空格是。我尝试使用以下方法解决此问题:
1)
{
my $name = $link->text();
$name =~ s/\?/" "/g;
}
2) 正如其他帖子中关于替换“?”的建议人物:
{
my $name = $link->text();
my $pat = quotemeta '?';
$name =~ s/$pat/" "/g;
}
这两种方法都对 $name 字符串没有任何作用!我在这里做错了什么?谢谢!
【问题讨论】:
-
use Data::Dumper; { local $Data::Dumper::Useqq = 1; print(Dumper($name)); }的输出是什么 -
我猜
?s 可能是由于编码问题,检查您的输入/输出和终端查看器都设置为utf8。 -
@user3396385 这是一个长镜头,但是当您
print $name时,您是在使用您的块中的变量$name,还是在您的块之外使用不同的$name变量? -
刚刚检查了这个,我认为你是对的。问号出现在输出字符串中的地方有一些奇怪的字符。我会试试你的建议,看看是否有效!
-
@user3396385
use utf8修复它:) ?
标签: regex perl www-mechanize