in reply to %20 results from reading info from a .dat file
It looks like you are dealing with URL-encoded data. The URI::Escape module can deal with this:
use URI::Escape; # ... $data = uri_unescape($data);
This should change %20 (in the $data variable) into spaces (assuming you are running on an ASCII-compatible platform), and other %XX sequences into the appropriate character. If you really don't want to use a module you can use the substitution: $data =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg which should be equivilent.
In Section
Seekers of Perl Wisdom