Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: parsing a space-separated filename in a line with fields separated by spaces

by johngg (Canon)
on Aug 15, 2007 at 22:32 UTC ( [id://632873]=note: print w/replies, xml ) Need Help??


in reply to parsing a space-separated filename in a line with fields separated by spaces

You can work your way in from both ends using the thre-argument form of split, like this. I have just populated an AoA here but once you have done that you can do what you like with it.

use strict; use warnings; use Data::Dumper; my @linesData; while ( <DATA> ) { chomp; my @flds = split m{\s+}, $_, 9; my $rest = pop @flds; push @flds, reverse map { $_ = reverse } split m{\s+}, reverse($rest), 10; push @linesData, \@flds; } print Data::Dumper->Dumpxs([\@linesData], [qw{*linesData}]); __END__ 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: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:31 2001 0 127.0.0.1 7276 p1774034_11i_zhs.zip a _ o r + tmbranno ftp 0 * c

This produces

@linesData = ( [ '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: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:31', '2001', '0', '127.0.0.1', '7276', 'p1774034_11i_zhs.zip', 'a', '_', 'o', 'r', 'tmbranno', 'ftp', '0', '*', 'c' ] );

I hope this is of use.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://632873]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2024-04-24 08:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found