in reply to Counting words..

... what does the following mean?

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

It decodes url-encoded text. Ie. When you see url's that look have characters that have been encoded, eg. http://news.bbc.co.uk/1/hi/technology/default%20.stm, it looks for the %xx encoding and translates that back to an ascii character.

s/ % ## find (and discard) the % char ( ## capture [a-fA-F0-9][a-fA-F0-9] ## two hex charcters to $1 ) / pack("C", hex($1)) ## convert hexcharacters to a number +, ## then pack to a character /eg; ## replace all in the target string

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.