Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^3: Split string variable of log input and output pieces in text file

by Marshall (Canon)
on Apr 17, 2016 at 18:39 UTC ( [id://1160740]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Split string variable of log input and output pieces in text file
in thread Split string variable of log input and output pieces in text file

Ok, split /[\s:()]+/,$line>, please read http://perldoc.perl.org/functions/split.html.

Split takes a line as input and makes an array according to the split regex. The split regex defines what constitutes a new array element boundary. During the split process the "separators" are "consumed", meaning deleted.

The regex above says: "if I see one or more, spaces, colons or left paren or right paren", delete those and move what is left over to the left as an array element. This part: [6,7,8,-2] says ok, I've lots of stuff but I only want the 7th,8th,9th thing and the 2nd one from the end. Perl arrays are indexed at zero. So the first one is index[0]. Run my "hint" code and see what happens if you delete () from the regex. Experimentation is key. Run some examples and report back.

This is not a perfect analogy, but if you had an old style typewriter and hit "carriage return" every time you saw the matching regex, you would wind up with my "hint" code.

Replies are listed 'Best First'.
Re^4: Split string variable of log input and output pieces in text file
by firepro20 (Novice) on Apr 18, 2016 at 12:11 UTC

    Thankyou Marshall for explaining this. Now I am able to adapt the split regex according to other log formats that I have

Re^4: Split string variable of log input and output pieces in text file
by Anonymous Monk on Apr 23, 2016 at 14:57 UTC

    Hi Marshall if I have a log now that I want the separators [] to be consumed, do I need to change the limiters? Or just modify the code like so:

     split /[[]\s:()]+/,$line>
      split /[[]\s:()]+/,$line>

      Have you tried to use the quoted code? What happens if you do? (I'm not sure what the  '>' on the end of this code fragment is supposed to be.)

      I'm not familiar with your data, but I think I would try (untested)
          split /[\[\]\s:()]+/, $line
      instead. Be aware that this may generate an extraneous empty string at the beginning of the split output list, so your selection indices may need adjustment.


      Give a man a fish:  <%-{-{-{-<

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1160740]
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-19 15:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found