Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^3: parse a line with varied number of fields

by johngg (Abbot)
on Jul 03, 2012 at 22:30 UTC ( #979799=note: print w/replies, xml ) Need Help??


in reply to Re^2: parse a line with varied number of fields
in thread parse a line with varied number of fields

preserves multiple spaces in the file name

In case others are puzzled let's share the enlightenment and explain what is going on. The reason spaces are preserved is that the file name field is never actually split. First, the line is broken into nine fields.

1 2 3 4 5 6 7 8 file name 10 11 12 13 14 15 16 17 18 ^ ^ ^ ^ ^ ^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Then the last field from the first split operation is reversed and broken into 10 fields.

81 71 61 51 41 31 21 11 01 eman elif ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^

Finally the last field from the second split operation is reversed to obtain the file name.

file name

Note that spaces in the file name will be preserved but if the file name has leading and/or trailing spaces the method fails as they will be lost.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://979799]
help
Chatterbox?
[Lady_Aleena]: Why does grep(/.*$in.*/, @my_modules) work but grep { $_ =~ /.*$in.*/; $_ } @my_modules not work? What did I do wrong in the second?
[tobyink]: Why are you returning $_ n your grep block? You should return a boolean.
[tobyink]: *in your grep block
[tobyink]: You can use grep { $_ =~ /.*$in.*/; } @my_modules but why not stick to grep(/.*$in.*/, @my_modules)? (The latter is faster.)
[shmem]: Lady_Aleena, in the first example grep evaluates the result from grep and if true, returns $_. In the second, it always returns $_
[shmem]: ..the result from the pattern match
[Lady_Aleena]: tobyink, I did after I failed to get the BLOCK to work. I can't seem to get my brain around grep BLOCK, though I'm okay with grep EXPR.
[shmem]: so in the second example grep returns all true elements of the list passed

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (8)
As of 2017-05-27 07:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?