in reply to Trimming unpack'ed strings
If the data are left justified within their fields, then the 'An' template you are using will trim trailing spaces. Unfortunately there is no equivalent for trimming right justified fields.
You could achieve the re-ordering of the fields using the '@n' absolute positioning template. And you can generate the empty fields using 'A0'.
The fly in the ointment as far as producing your output is concerned, it that you have a variable in your output $catdesc, that does not appear to come from your input?
Otherwise you could achieve the one-liner something along the lines of:
print CSTORE_OUT join ',', unpack '(A0)2 @9A30 (A0)4 @0A7 @119A13 @9A30 @90A8 ...', $_;
***NOTE*** That won't work as it's a) incomplete; b) I've re-used the $desc field inplace of the absent $catdesc variable.
It's just an example of what might have been possible had all the output fields come from the input. Whether there is any advantage in doing this as a one-liner is another question.
|
|---|