【问题标题】:Remove Part of String Perl删除部分字符串 Perl
【发布时间】: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


    【解决方案1】:

    像这样:

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

    就是这样。详情请见perldoc perlre

    【讨论】:

      【解决方案2】:

      虽然替代可以工作,但它很脆弱,难以扩展和维护。我强烈建议learng改用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
      

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 2017-07-02
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        • 2012-03-31
        相关资源
        最近更新 更多