Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re^3: Syslog files revisited

by johngg (Abbot)
on Aug 03, 2012 at 09:11 UTC ( #985197=note: print w/replies, xml ) Need Help??

in reply to Re^2: Syslog files revisited
in thread Syslog files revisited

... but it gives me the problem that the variable message at the end gets split up into an indeterminate number of csv values ...

No, the third parameter to split limits the number of resultant fields so the $remainder scalar variable holds the entirety of your variable message.



Replies are listed 'Best First'.
Re^4: Syslog files revisited
by stevbutt (Novice) on Aug 03, 2012 at 16:09 UTC

    Thats great and thank you very much for your help. I have one further issue though. My existing code now looks like this

    #!/usr/bin/perl use 5.010; use strict; use warnings; while (my $line = <STDIN>) { chomp($line); my ( $mon, $day, $time, $dom, $login, $remainder ) = split m{:?\s+}, $line, 6; my %monthNos = do { my $no = 0; map { $_ => ++ $no } qw{ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec }; }; my $yr = q{2012}; my $csv = sprintf q{%02d/%02d/%s %s,%s,%s,"%s"}, $day, $monthNos{ $mon }, $yr, $time, $dom, $login, $remainder; say $csv; }

    As I wanted the remainder to be in double quotes so it would read in as one field. The problem is that remainder sometimes already contains double quotes which I would like to remove or replace with single quotes

    I tried the following but it leaves be with an empty set of double quotes

    my $remainder =~ s/""\"\""/\'/g;

      Sorry to bother anyone with such trivial stuff, I played and found the the following worked

      $remainder =~ tr/"/'/d;

      Many Thanks

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://985197]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2018-06-21 23:30 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (120 votes). Check out past polls.