in reply to help substituting whitespaces?

Squashing whitespace is most efficiently done with tr:
$description =~ tr/ / /s;
This will leave (at most) a single leading/trailing space if it exists, though. Want to squash all the internal spaces and lose the leading/trailing spaces? Try this one:
$description = join ' ', split ' ', $description;
Read up on join and split if you want to see why this works.