in reply to Encoding spaces in CGI form data
That's what the CGI::unescape function for:
use CGI; print CGI::unescape("hello+ferran%21"), $/; __END__ [download]
hello, ferran! [download]