Here's a solution that creates the output you've added to the OP using the updated input data. (When making changes to a post, especially if replies relied on the original unchanged data, specify the changes you made by adding "Update:".)
while (<DATA>) { my @parts = unpack('A5 A7 A5 A3 A5 A9 A8 A5 A*', $_); for ($parts[6]) { s/\s+/ /g; s/^\s//; } print(join(';', @parts), "\n"); }
or
while (<DATA>) { my @parts = unpack('A5 A7 A5 A3 A5 A9 A2 A4 A2 A5 A*', $_); my $flags = join ' ', grep length, @parts[6..8]; splice(@parts, 6, 3, $flags); print(join(';', @parts), "\n"); }
The second version is basically the same as FunkyMonk's, but I do the substitution after extracting the fields.
In reply to Re^3: gathering of some elements of a list
by ikegami
in thread gathering of some elements of a list
by steph_bow
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |