2008-08-25 120 views

回答

0

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

$full_url = $base_url . $relative_url

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

@lennysan当然是啊。对不起,我忍不住,我的Perl很生锈。

1

布伦丹,我应该澄清一点,我不能保证相对路径的样子。这可能会非常棘手(例如在前面有斜线,没有斜线,有“../”等)。

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

4

刚刚发生在this article之间,它指出了Perl的Redhat/Centos/Fedora实现中的缺陷,它深刻地影响了URI

如果您正在运行其中一种Linux风格,则可能需要从原始源代码(而非RPM源代码)​​重新编译Perl。

我意识到在Redhat 5.2,Centos 5.2或Fedora 9上运行perl代码并分发perl代码的任何人都可能成为受害者。是的,即使你的代码不使用花哨的祝福/超载惯用法,许多CPAN模块也可以!这谷歌搜索显示1500 +模块使用保佑/超载成语,他们包括一些非常受欢迎的像URI,JSON。 ...

...在这一点上,我决定从源代码重新编译perl。错误消失了。差异是惊人的。一切都变得非常快。在0.10以下的loadavg中,CPU处于冷冻状态,我们将数据处理速度从100倍提高到了1000倍!

1

可能取决于你如何获得这2个字符串。或许这种安全,防火的方法就是URI :: URL或类似的库,其中包括所有的替代品,包括恶意的,都会被考虑。也许速度较慢,但​​在某些环境下速度更快的是子弹走向自己的脚步。

但是,如果你期望有一些简单而不棘手的东西可以看到它是以/,/ ..或其他字符串开头的。第一个将把服务器名称+ url,第二个从基础uri的chop路径,直到获得另外两个选项之一,或者将它添加到基础url。