【发布时间】:2018-04-12 10:53:12
【问题描述】:
我想比较这两个变量。它们都有相同的值,但是,一个是 href 变量 - 意思是,它是从这样的文件中读取的
<a href=http://google.com>Variable</a>
它是这样读取的,但在浏览器中显示为锚标记,所以当我使用print "$collect_zids{$key} --> $temp";比较一个值时,我在浏览器中看到的是
变量 --> Variable
How it appears in the browser. One text another link.
我假设这两个值是不同的,因此为什么这段代码没有运行
if($collect_zids{$key} eq $from_picture){
print "<h1>Hello</h1>";
}
有没有办法可以将 href 变量转换为普通的标量变量,以便比较它们?
谢谢!
附:我认为 Javascript 可能是唯一的方法,但是,我没有任何经验。
【问题讨论】:
-
“相同的值”是指一个具有
"http://google.com"的值和一个具有"<a href=http://google.com>http://google.com</a>的值 - 因为它们不相同!您是在问如何在 Perl 中解析 HTML,以便提取<a>元素的文本内容? -
我的意思是相同的值,例如 - 一个是标量变量,其值为“Foo Bar”。
$var = "Foo Bar";,另一个是$var2 = <a href=http://google.com>Foo Bar</a>。所以,如果我要在浏览器中使用print "$var - $var2"打印这两个,我会得到Foo Bar - Foo Bar。但唯一的问题是,一个是文本值,另一个是锚点。因此,当我使用if($var eq $var2){print "hi"}比较它们时,它不会返回 true。 -
两者都是文本值。一个只是有更多的文字。去寻找一个 HTML 解析器库,这样您就可以在尝试将其与其他值进行比较之前从 HTML 中提取您关心的文本。
-
我在问题中添加了一张图片以显示它的外观。
标签: javascript html perl cgi