in reply to URL escaping

The regex is not recognizing the sprintf as a function in the second part of the s/// operator, so it's probably better (and more legit) to break this into two lines:
if ($url_text =~ m/([^;\/?:@&=+\$,A-Za-z0-9\-_.!~*'()])/ ) { $url_sub = sprintf( "%%%02X", ord( $1 ) ); $url_text =~ s/([^;\/?:@&=+\$,A-Za-z0-9\-_.!~*'()])/$url_sub/; }

Update Or , duh, use the s///e modifier (stupid me...)

$url_text =~ s/([^;\/?:@&=+\$,A-Za-z0-9\-_.!~*'()])/sprintf( "%%%02X", + ord( $1 ) )/ge;
What I have above won't catch multiple URLs on the same line.
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain