Hi,

You can use the following it will reduce the amount of :
...
while (<>) {
  $uri = (split)[0];
  $uri =~ s#www\.example\.com/(v\d?|so)#$1.example.com#  or
  $uri =~ s#www\.example\.com/admin/\?.*#www.example.com/admin/# or
  $uri =~ s#www\.example\.com/([wulp])(\d+)/#$2.$1.example.com# or
  $uri =~ s#www\.example\.com/([wulp])/#$1.example.com/#;
  print $uri;
}
Best regards

Yaron Kahanovitch

----- Original Message -----
From: "Jen mlists" <[EMAIL PROTECTED]>
To: "beginners perl" <beginners@perl.org>
Sent: Saturday, April 28, 2007 10:57:07 AM (GMT+0200) Auto-Detected
Subject: hellp improve efficiency

Hello members,

I wrote a perl script for url redirect,shown as below,

$|=1;
my $uri = '';

while (<>) {

    $uri = (split)[0];

    if ($uri =~ /\.html?\?/ or $uri =~ /\.js\?/ or $uri =~ /\.css\?/ or
        $uri =~ /\.jpg\?/ or $uri =~ /\.gif\?/ or $uri =~ /\.swf\?/) {
        $uri =~ s/\?.*$//;
    }

    if ($uri =~ m|www\.example\.com/v/|o) {
        $uri =~ s|www\.example\.com/v/|v.example.com/|;

    }elsif ($uri =~ m|www\.example\.com/v2/|o) {
        $uri =~ s|www\.example\.com/v2/|v2.example.com/|;

    }elsif ($uri =~ m|www\.example\.com/v3/|o) {
        $uri =~ s|www\.example\.com/v3/|v3.example.com/|;

    }elsif ($uri =~ m|www\.example\.com/so/|o) {
        $uri =~ s|www\.example\.com/so/|so.example.com/|;

    }elsif ($uri =~ m|www\.example\.com/admin/\?.*|o) {
        $uri =~ s|www\.example\.com/admin/\?.*|www.example.com/admin/|;

    }elsif ($uri =~ m|www\.example\.com/w\?v=|o) {
        $uri =~ s|www\.example\.com/w\?v=|v2.example.com/v_|;

    }elsif ($uri =~ m|www\.example\.com/([wulp])(\d+)/|o) {
        $uri =~ s|www\.example\.com/([wulp])(\d+)/|$2.$1.example.com/|;

    }elsif ($uri =~ m|www\.example\.com/([wulp])/|o) {
        $uri =~ s|www\.example\.com/([wulp])/|$1.example.com/|;
    }

} continue {

    print "$uri\n";

}

__END__

As you see,for each regex match,I've tested it twice.
Maybe it's going with low-efficiency.How can improve it?Thanks.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to