[url=http://perldoc.perl.org/functions/use.html][black][b]use[/b][/black][/url] [green]URI[/green][red];[/red]
[black][b]use[/b][/black] [green]strict[/green][red];[/red]
[url=http://perldoc.perl.org/functions/my.html][black][b]my[/b][/black][/url] [blue]$domain[/blue] = [red]'[/red][purple]domain1.com[/purple][red]'[/red][red];[/red]
[black][b]my[/b][/black] [blue]$pathpre[/blue] = [red]'[/red][purple]/userfiles/site1[/purple][red]'[/red][red];[/red]
[olive][b]while[/b][/olive] [red]([/red]<DATA>[red])[/red] [red]{[/red]
[url=http://perldoc.perl.org/functions/chomp.html][black][b]chomp[/b][/black][/url][red];[/red]
[black][b]my[/b][/black] [red]([/red][blue]$url[/blue], [blue]$expected[/blue][red])[/red] = [url=http://perldoc.perl.org/functions/split.html][black][b]split[/b][/black][/url] [red]/[/red][purple][purple][b]\s[/b][/purple]+=>[purple][b]\s[/b][/purple]+[/purple][red]/[/red][red];[/red]
[url=http://perldoc.perl.org/functions/print.html][black][b]print[/b][/black][/url] [red]"[/red][purple][blue]$url[/blue] ... [/purple][red]"[/red][red];[/red]
[black][b]my[/b][/black] [blue]$uri[/blue] = URI->[maroon]new[/maroon][red]([/red] [blue]$url[/blue] [red])[/red][red];[/red]
[olive][b]if[/b][/olive] [red]([/red][blue]$uri[/blue]->[maroon]host[/maroon] !~ [red]/[/red][purple](?:^|[purple][b]\.[/b][/purple])[purple][b]\Q[/b][/purple][blue]$domain[/blue][purple][b]\E[/b][/purple]$[/purple][red]/[/red][red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]not changed (different domain)[purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[red]}[/red] [olive][b]elsif[/b][/olive] [red]([/red][blue]$uri[/blue]->[maroon]path[/maroon] =~ [red]/[/red][purple]^[purple][b]\Q[/b][/purple][blue]$pathpre[/blue][purple][b]\E[/b][/purple](?:[purple][b]\/[/b][/purple]|[blue]$)[/blue][/purple][red]/[/red][red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]not changed (path ok)[purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[red]}[/red] [olive][b]else[/b][/olive] [red]{[/red]
[gray][i]# Set new Path[/i][/gray]
[black][b]my[/b][/black] [blue]$newpath[/blue] = [red]'[/red][purple]/userfiles/site1[/purple][red]'[/red] . [blue]$uri[/blue]->[maroon]path[/maroon][red];[/red]
[blue]$uri[/blue]->[maroon]path[/maroon][red]([/red][blue]$newpath[/blue][red])[/red][red];[/red]
[blue]$url[/blue] = [blue]$uri[/blue]->[maroon]as_string[/maroon][red];[/red]
[olive][b]if[/b][/olive] [red]([/red][blue]$url[/blue] eq [blue]$expected[/blue][red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]ok[purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[red]}[/red] [olive][b]else[/b][/olive] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]bad[purple][b]\n[/b][/purple][purple][b]\t[/b][/purple]expected: [blue]$expected[/blue][purple][b]\n[/b][/purple][purple][b]\t[/b][/purple]found: [blue]$url[/blue][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[olive][b]last[/b][/olive][red];[/red]
[red]}[/red]
[red]}[/red]
[red]}[/red]
[teal]__DATA__[/teal]
[teal][URL unfurl="true"]http://www.domain1.com[/URL] => [URL unfurl="true"]http://www.domain1.com/userfiles/site1[/URL][/teal]
[teal][URL unfurl="true"]http://domain1.com[/URL] => [URL unfurl="true"]http://domain1.com/userfiles/site1[/URL][/teal]
[teal][URL unfurl="true"]http://ww2.domain1.com[/URL] => [URL unfurl="true"]http://ww2.domain1.com/userfiles/site1[/URL][/teal]
[teal][URL unfurl="true"]http://www.domain1.com/[/URL] => [URL unfurl="true"]http://www.domain1.com/userfiles/site1/[/URL][/teal]
[teal][URL unfurl="true"]http://www.domain1.com/folder/test.htm[/URL] => [URL unfurl="true"]http://www.domain1.com/userfiles/site1/folder/test.htm[/URL][/teal]
[teal][URL unfurl="true"]http://domain1.com/test.htm?param=abc[/URL] => [URL unfurl="true"]http://domain1.com/userfiles/site1/test.htm?param=abc[/URL][/teal]
[teal][URL unfurl="true"]http://ww8.domain1.com/?param=123[/URL] => [URL unfurl="true"]http://ww8.domain1.com/userfiles/site1/?param=123[/URL][/teal]
[teal][URL unfurl="true"]http://www.domain1.com/userfiles/site1/folder/test.htm[/URL] => [URL unfurl="true"]http://www.domain1.com/userfiles/site1/folder/test.htm[/URL][/teal]
[teal][URL unfurl="true"]http://www.domain1.com:8080/[/URL] => [URL unfurl="true"]http://www.domain1.com:8080/userfiles/site1/[/URL][/teal]
[teal][URL unfurl="true"]http://www.domain1.com:8443/folder/test.htm[/URL] => [URL unfurl="true"]http://www.domain1.com:8443/userfiles/site1/folder/test.htm[/URL][/teal]
[teal][URL unfurl="true"]https://domain1.com/test.htm?param=abc[/URL] => [URL unfurl="true"]https://domain1.com/userfiles/site1/test.htm?param=abc[/URL][/teal]