WOW!!! Amazing explanation !! Thank you very very much Ovid =) But is there anyway to do the "re-converting" without using any module ? my homework requirement is allow me to do so... ( and I don't know how to use module yet too). Please give me a hand for a little bit more help, thank you very much. ^__^
----- Original Message ----- From: "Curtis Poe" <[EMAIL PROTECTED]> To: "Connie Chan" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, December 20, 2001 12:17 PM Subject: Re: re-convert > --- Connie Chan <[EMAIL PROTECTED]> wrote: > > Since we know this : $string =~ s/([a-fA-F0-9][a-fA-F0-9])/pack ("C", hex($1))/eg; > > > > is a statement which can converting back the "real string" from > > a form field, but, could anybody tell how to convert the "real string" > > to the "long long" string ?? > > > > Besides, anybody can tell what is the exactly meaning of : ("C", hex($1)) ? > > Connie, > > Here's the scoop: > > pack ("C", hex($1)) > > Working from the inside, out, 'hex' is a function that takes hex input and returns the integer > value: > > $ perl -e 'print hex "f"' > 15 > > The $1 has the hex data captured from the regular expression. From 'perldoc -f pack', we see that > if the first argument to pack is an upper case C, it will convert the second argument to an > unsigned character (ASCII). > > $ perl -e '@a=qw/4f 76 69 64/;print pack("C",hex$_)for @a' > Ovid > > To get from an ASCII character back to the hex encoded version, use URI::Escape. > > C:\WINDOWS>perl -MURI::Escape -e "print uri_escape(q|Ovid|)" > Ovid > > You might wonder why that printed "Ovid" instead of a bunch of funky hex characters. In URIs, > only certain characters need to be escaped. Ampersands, semi-colons, spaces, and a few other > items need escaping. See 'perldoc URI::Escape' for more information. > > C:\WINDOWS>perl -MURI::Escape -e "print uri_escape(q|& ;+|)" > %26%20%3B%2B > > For a full list of what characters are escaped in URIs, see > http://www.easystreet.com/~ovid/cgi_course/appendices/appendix2.html. There's also a Perl program > at the bottom of the page which shows the use of the URI::Escape module in much greater detail. > > Cheers, > Curtis "Ovid" Poe > > ===== > "Ovid" on http://www.perlmonks.org/ > Someone asked me how to count to 10 in Perl: > push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; > shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A > > __________________________________________________ > Do You Yahoo!? > Check out Yahoo! Shopping and Yahoo! Auctions for all of > your unique holiday gifts! Buy at http://shopping.yahoo.com > or bid at http://auctions.yahoo.com > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]