【发布时间】:2011-08-10 15:49:01
【问题描述】:
我在 perl 中有这个
return "$file->{srv_cgi_url}/dl.cgi/$hash/$fname";
在哪里
$file->{srv_cgi_url}
返回
http://s1.site.com/cgi-bin/
如何从字符串中删除尾随的 /cgi-bin/? :)
谢谢!
【问题讨论】:
标签: string perl str-replace
我在 perl 中有这个
return "$file->{srv_cgi_url}/dl.cgi/$hash/$fname";
在哪里
$file->{srv_cgi_url}
返回
http://s1.site.com/cgi-bin/
如何从字符串中删除尾随的 /cgi-bin/? :)
谢谢!
【问题讨论】:
标签: string perl str-replace
【讨论】:
虽然替代可以工作,但它很脆弱,难以扩展和维护。我强烈建议learng改用URI、URI::QueryParam和Path::Class(最后一个在本例中没有使用,但很重要且相关)。
use warnings;
use strict;
use URI;
my $file;
$file->{srv_cgi_url} = "http://s1.site.com/cgi-bin/";
my $srv_cgi_uri = URI->new( $file->{srv_cgi_url} );
my $hash = "some";
my $fname = "path.ext";
$srv_cgi_uri->path("/dl.cgi/$hash/$fname");
print $srv_cgi_uri, "\n";
__END__
http://s1.site.com/dl.cgi/some/path.ext
【讨论】: