Hi, I am very newbie for using the function 'pack', and here I have some questions :
Q1. Can I expect that pack can do this for me ?
- compress a text file in smaller size
- besize template 'aAuU', anything else tempplate I can use to prepare fix length
data ?
- if yes, but how do I assuming the block size is? In case, if I write a binary
file and I wanna use seek.
Q2. Does the below results of code can be explained ?
my @arr = ('aa', '999', '!!');
my @back = ();
my @p = qw/a A Z b B h H c C s S i I l L n N v V j J f d F p P u U w x X/;
for $x(@p)
{ eval "\nprint \"$x ->\"; [EMAIL PROTECTED] = unpack \"${x}3${x}3${x}3\", \(pack
\"${x}3${x}3${x}3\", [EMAIL PROTECTED]); print \"\<\$_>\" for [EMAIL PROTECTED]; print
\"\\n\"; " };
Then I got results :
< snipped results... >
b -><110><111><110>
B -><110><111><110>
what is b and B's return value stands for now ?
h -><aa0><999><110>
H -><aa0><999><110>
what is h and H's return value stands for now ?
Why 'aa' returns 'aa', but '!!' return 11 ( or maybe 110 ) ?
< snipped results... >
f -><0><999><0><0><0><0><0><0><0>
d -><0><999><0><0><0><0><0><0><0>
F -><0><999><0><0><0><0><0><0><0>
Is that this kind of templates are just fine for handling numbers ?
The pack way is just like doing something like print 'X' + 1, so got zero result ?
but, how come the return array contains so many elems ? Where are they from ?
And I make a guess is have I convert my string to ascii code before I try to pack them
?
< snipped results... >
u -><aa999!!><><>
Why arrays joined while other elems are still given ?
< snipped results... >
Q3. Is that I always have to do something more before I do unpack ?
but not just unpack with the same way as I pack ?
This is really a uneasy understanding function in perl... I do really very apperciate
if anybody would kindly explain some more... and perhaps give some more practical
exmple reference...
TIA