删除部分字符串Perl

时间:2011-08-10 02:32:00

标签: 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 /? :)

谢谢!

2 个答案:

答案 0 :(得分:1)

像这样:

my $new = $file->{srv_cgi_url};
$new =~ s{/cgi-bin/}{};

就是这样。有关详细信息,请参阅perldoc perlre

答案 1 :(得分:1)

虽然替代可行,但它很脆弱,难以扩展和维护。我强烈建议学习使用URIURI::QueryParamPath::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