My take...
while ( <DATA> ) { chomp; my @fields1 = split ' ', $_, 9; my @fields2 = split / /, pop @fields1; if ( @fields2 > 10 ) { my @filename = splice @fields2, 0, @fields2 - 9; unshift @fields2, join ' ', @filename; } push @fields1, @fields2; printf "%3s %3s %2d %8s %4s %s %-14s %4d %-26s %s %s %s %s %-10s % +3s %s %s %s\n", @fields1; } __DATA__ Mon Oct 1 17:09:27 2001 0 127.0.0.1 22 file with spaces in it.zip a _ + o r tmbranno ftp 0 * c Mon Oct 1 17:09:23 2001 0 127.0.0.1 2611 1774034 a _ o r tmbranno ftp + 0 * c Mon Oct 1 17:09:27 2001 0 127.0.0.1 22 1774034 a _ o r tmbranno ftp 0 + * c Mon Oct 1 17:09:31 2001 0 127.0.0.1 7276 p1774034_11i_zhs.zip a _ o r + tmbranno ftp 0 * c
Output:
Mon Oct 1 17:09:27 2001 0 127.0.0.1 22 file with spaces in it. +zip a _ o r tmbranno ftp 0 * c Mon Oct 1 17:09:23 2001 0 127.0.0.1 2611 1774034 + a _ o r tmbranno ftp 0 * c Mon Oct 1 17:09:27 2001 0 127.0.0.1 22 1774034 + a _ o r tmbranno ftp 0 * c Mon Oct 1 17:09:31 2001 0 127.0.0.1 7276 p1774034_11i_zhs.zip + a _ o r tmbranno ftp 0 * c
In reply to Re: parsing a space-separated filename in a line with fields separated by spaces
by FunkyMonk
in thread parsing a space-separated filename in a line with fields separated by spaces
by princepawn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |