($dirfilename = $url) =~ s|\Qhttp://foo.bar.com/\E||;
From the Perl Cookbook, recipe 6.1.Copying and Substituting Simultaneously:
You can even use this technique on an entire array:
@bindirs = qw( /usr/bin /bin /usr/local/bin );
for (@libdirs = @bindirs) { s/bin/lib/ }
print "@libdirs\n";
__OUTPUT__
/usr/lib /lib /usr/local/lib
The parentheses are required when combining an assignment if you wish to change the result in the leftmost variable. Normally, the result of a substitution is its success: either "" for failure, or the number of times the substitution was done. Contrast this with the preceding examples where the parentheses surround the assignment itself. For example:
($a = $b) =~ s/x/y/g; # copy $b and then change $a
$a = ($b =~ s/x/y/g); # change $b, count goes in $a
|