Or if you want the characters themselves: @result = map { chr( hex ) } @source;
Or as a solid string: $s = join '', map { chr( hex ) } @source; On Tue, Nov 23, 2010 at 3:47 PM, will trillich <will.trill...@serensoft.com>wrote: > Dude! This one is really easy: > > print hex("ff"); # 255! > > so @result = map{ hex } @source; > > Mwa ha ha! > > > On Tue, Nov 23, 2010 at 3:44 PM, Greg Aiken <gai...@visioninfosoft.com>wrote: > >> if one dumps a windows registry section using regedit (to *.reg format) >> >> >> >> the reg_sz values are listed in the following format (heres a code >> fragment) >> >> >> >> >> "\\DosDevices\\E:"=hex:5c,00,3f,00,3f,00,5c,00,53,00,43,00,53,00,49,00,23,00,\ >> >> >> 43,00,64,00,52,00,6f,00,6d,00,26,00,56,00,65,00,6e,00,5f,00,45,00,5a,00,35,\ >> >> >> 00,33,00,35,00,32,00,58,00,26,00,50,00,72,00,6f,00,64,00,5f,00,56,00,54,00,\ >> >> >> 59,00,35,00,32,00,37,00,4f,00,26,00,52,00,65,00,76,00,5f,00,32,00,2e,00,30,\ >> >> >> 00,42,00,23,00,35,00,26,00,33,00,36,00,65,00,35,00,39,00,37,00,32,00,26,00,\ >> >> >> 30,00,26,00,30,00,30,00,30,00,23,00,7b,00,35,00,33,00,66,00,35,00,36,00,33,\ >> >> >> 00,30,00,64,00,2d,00,62,00,36,00,62,00,66,00,2d,00,31,00,31,00,64,00,30,00,\ >> >> >> 2d,00,39,00,34,00,66,00,32,00,2d,00,30,00,30,00,61,00,30,00,63,00,39,00,31,\ >> >> 00,65,00,66,00,62,00,38,00,62,00,7d,00 >> >> >> >> ive already got code that parses this info. >> >> >> >> ive removed the trailing \(backslash)newline(space)(space) from the data >> block so im left with a scalar containing hexadecimal values separated with >> a comma. >> >> >> >> ive then split this long scaler on the ‘,’ (comma) to yield an array >> containing the hex values. >> >> >> >> my problem here is that I don’t know the easiest ‘built-in’ way to convert >> this list of hex values to ascii values (ascii values as in the ascii >> character set for printing in human readable letters). as in the ‘char’ >> column of this table >> http://www.hobbyprojects.com/ascii-table/images/ascii-table1.gif >> >> >> >> I know chr(decimal value) will do such a conversion. but my values in the >> array are not in decimal value format. >> >> >> >> and im kind of lost with pack… ive unsuccessfully tried… >> >> >> >> $ascii_string = pack(“H*”, @hex_array) and >> >> $ascii_string = pack(“h*”, @hex_array) >> >> >> >> but neither yields the proper output. >> >> >> >> I know I could write an ultra low level code that directly converts each >> hex byte to decimal, then call chr with the decimal value, but certainly >> that’s ‘too much work’ in perl. >> >> >> >> any help would be appreciated. >> >> >> >> it would be as if were starting with >> >> >> >> @hex_array = (‘5c’,’00’,’3f’,’00’,’3f’,’00’,’5c’,’00’,’53’,’00’,…); >> >> _______________________________________________ >> Perl-Win32-Users mailing list >> Perl-Win32-Users@listserv.ActiveState.com >> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs >> >> > > > -- > Failure is not important. How you overcome it, is. > -- Nick Vujicic > -- Failure is not important. How you overcome it, is. -- Nick Vujicic
_______________________________________________ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs