Hi,
You have been given great solutions, but in the spirit of "tim today", you could also check this (a somewhat modifications to the solutions already given):
use strict;
use warnings;
my %logger;
my $key;
while(<DATA>){
s/\s+$//;
if(/\[(.*)\]/){
$key = $1;
}else{push @{$logger{$key}}, $_;}
}
print $_,":", join ("," => @{$logger{$_}}),$/
for sort {$a cmp $b} keys %logger;
__DATA__
[server1]
/tmp/location1/file.log
/tmp/location2/file.log
[server2]
/usr/loc1/file.log
/usr/loc2/file.log
[server3]
/citrix/dir3/file.log
NOTE:
Since, the key only changes, when the name of server is seen, and that until the next one. It works perfectly well. You could also see perldsc
If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|