The stupid question is the question not asked | |
PerlMonks |
Re: pack() v unpack() padding: bug or ???by Athanasius (Archbishop) |
on Feb 16, 2015 at 16:11 UTC ( [id://1116886]=note: print w/replies, xml ) | Need Help?? |
Hello BrowserUk, As I understand it, pack (A2)*, LIST says: for each element in LIST, convert it to a 2-byte ASCII string, padded with a trailing space character if necessary; then return the concatenation of these converted elements as a single string. Logically, then, since unpack “does the reverse of pack”, unpack (A2)*, STRING should break STRING into 2-character chunks, and for each chunk, first remove any trailing spaces, then convert it to an appropriate value. Which is what I see:
Note that "f " has been converted to "f" by removal of the trailing space (padding).
I don’t see a problem here, either. The template Z2 specifies a 2-byte null-terminated string. Packing 'fr' of course requires 3 bytes, so the second character is thrown away and the packed result is f\0. Isn’t that what it’s supposed to do? Hope that helps (and I apologise if I’ve missed the point!),
In Section
Seekers of Perl Wisdom
|
|