我目前正在使用模块URI::URL URL从相对URL生成完整的URL; 然而,它并没有像我希望的那样快速运行。 有没有人知道另一种方法可能会更快?

===============>>#1 票数:4

刚发生在这篇文章中 ,指出了Perl的Redhat / Centos / Fedora实现中的缺点,它们深刻地影响了URI

如果您正在运行其中一种Linux版本,则可能需要从原始源(而不是RPM源)重新编译Perl。

我意识到在Redhat 5.2,Centos 5.2或Fedora 9上使用perl解释器运行perl代码的人很可能是受害者。 是的,即使您的代码不使用花哨的祝福/过载习语,许多CPAN模块也可以! 这个谷歌搜索显示1500多个模块使用祝福/过载成语,它们包括一些非常流行的,如URI,JSON。 ...

...此时,我决定从源代码重新编译perl。 虫子消失了。 而差异是令人震惊的。 一切都变得非常快。 CPU负载低于0.10,我们处理的数据速度提高了100倍到1000倍!

===============>>#2 票数:3 已采纳

以下代码应该有效。

$uri = URI->new_abs( $str, $base_uri )

您还应该查看search.cpan.org的URI页面

===============>>#3 票数:1

布兰登,我应该澄清一点,我无法保证相对路径会是什么样子。 它可能非常棘手(例如前面有斜线,没有斜线,有“../”等)。

彼得,这就是我现在正在使用的东西。 或者使用URI :: URL-> new($ path) - > abs更快?

===============>>#4 票数:1

可能有点依赖于你如何获得这两个字符串。 可能安全,防火的方法就是在URI :: URL或类似的库中,其中包括恶意的所有替代品都将被考虑在内。 也许速度较慢,但​​在某些环境中,子弹的速度会更快。

但是,如果你期望有一些简单而不棘手的东西可以看到它是以/,或者任何其他字符串开头的。 第一个将服务器名称+ url,第二个切断路径从基础uri直到进入其他两个替代方案之一,或者只是将其添加到基本URL。

===============>>#5 票数:0

也许我得到了错误的结束,但不会,

$full_url = $base_url . $relative_url

工作? IIRC Perl文本处理非常快。

Ah sure yes of course. 当然可以肯定是的。 对不起我无法帮助,我的Perl非常生疏。

  ask by lennysan translate from so

未解决问题?本站智能推荐:

2回复

如何在Perl中生成给定单词的建议列表?

我创建了一个包含单词列表的自定义词典。 现在的计划是在Perl中创建一个程序,它接受一个单词并生成一个单词列表(比如说其中5个),它们与该词典中给定的单词最接近(词汇顺序)。 现在我想知道是否有可用的模块可以帮助我做到这一点。 如果没有,那么我该如何实现这样的目标呢? 提前致谢
4回复

Perl,如何确定变量值是否为数字?

是否有一种独特的方法来确定变量值是否为数字,因为这些值也可以是科学记数法(例如,5.814e-10)?
6回复

这是在PHP for MVC中将URI与类/方法匹配的好方法

我是MVC的新手,所以这是我的第一次尝试,我相信你们可以给我改进,感谢任何提示或帮助! 下面是我为我的个人框架设计的路由器/调度程序系统,这是我第一次尝试使用MVC模式。 第一个代码块只是我的.htaccess文件,它通过我的index.php文件路由所有请求。 第二个代码块是
1回复

使用Perl的代理URL重定向

我想从perl进行代理重定向。 我一直在使用位置标题进行重定向。 问题在于客户端的URL更改为新的URL(即www.example.com)。 我不希望发生这种情况,以便最终用户不知道我们正在从中提供请求的位置。
1回复

Perl WWW:Mechanize / HTML:TokeParser以及来自href attr的跟随/存储URL

由于此站点上的帮助,我在Perl方面取得了一些良好的进展,但是我遇到了问题。 我从中抓取的页面之一已更改,现在我不知道该怎么去。 我想做的是存储指向我要访问的每个页面的链接。 问题是这些链接在源代码的a href属性标签内,我不知道如何提取它们。 有人可以帮我吗? 我需要的链接是从
2回复

如何使用Perl的Google :: Search查找特定的URL?

基于AJAX Search API的Google :: Search模块似乎效果不佳,或者只是我? 例如,我使用firefox搜索谷歌: http : //bloggingheads.tv/forum/member.php?u = 12129 它带来了结果。 但是当我以这种方式
1回复

确定Perl模块中的相对路径

第一个模块: 第二单元: 以上是我编写的perl模块的示例。 它从其他模块调用python脚本并将其传递给必要的参数/参数。 我已经尝试删除键入脚本的实际路径并将其替换为“./python_script.py”但它似乎不起作用。 我尝试在使用Cwd运行脚本时打印目录
3回复

Perl:用于(划分)大型脚本的最智能,最快的方法?

我有一个Perl脚本,目前有10个潜艇,并且还在不断增加。 每个子程序都进行不同的LWP-Call,并使用我在第一个子程序中设置的变量。 由于每个子程序都需要一些时间,因此我正在寻找一种使脚本运行更快的聪明方法。 你会推荐什么? 我是不是该: 将每个子项放入单独
1回复

使模块警告致命的最简单方法是什么?

通过“掌握perl”,我已经覆盖了“编码”模块的“编码”功能。 有没有一种较短的方法可以使encoded-utf8-warnings致命? 子问题:s ///之后$ error_message中的换行符从哪里来?
3回复

处理相互使用的模块的最佳方法是什么? [关闭]

处理相互使用的模块的最佳方法是什么? 假设我有一个具有哈希函数的模块: 另一个模块已经分段列出: 假设足够的这些实用程序函数足够方便我将在BEGIN语句中使用它们并导入函数来处理参数列表或配置数据。 我一直在将子定义放入BEGIN块中,以确保只要有人包含模块就可以使用