use strict; use URI::Escape; my @tests = ( "1/15/99-Bob.pdf", "test.txt", '\\/:*?"<>|' ); for ( @tests ) { print uri_escape( $_, ':\\\\\/*?"<>|' ), "\n"; } #### 1%2F15%2F99-Bob.pdf test.txt %5C%2F%3A%2A%3F%22%3C%3E%7C #### wwwroot -- documents --- 1 -- 25 -- 99 | -- 2 | -- 3