2011-08-10 7 views
2

私はperlで削除パート

return "$file->{srv_cgi_url}/dl.cgi/$hash/$fname"; 

$file->{srv_cgi_url} 

戻り

http://s1.site.com/cgi-bin/ 

どのように私は、文字列から末尾/ CGI-binに/を削除することができますが、これを持っています? :)

ありがとう!このよう

答えて

1

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

。詳細については、perldoc perlreを参照してください。

1

置換は機能しますが、壊れやすく、拡張して維持するのが難しいです。代わりに、URIURI::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