#!/usr/bin/perl use constant DB => './irclog.db'; use strict; my %names = (); my %increases = (); my %decreases = (); my %urls = (); open INPUT, ' < ' . DB or die "Can't open " . DB . ": $!\n"; while ( ) { # clean and parse chop; my ( $datestamp, $name, $text ) = split /\t/, $_; # clean and tally names $name =~ s/_+//g; $names{ $name }++; # urls if ( $text =~ /http:\/\/.*?\s/ ) { $text =~ /(http:\/\/.*?)\s/ ; my $url = $1; $url =~ s/;$//; $url =~ s/,$//; $url =~ s/>$//; $url =~ s/"$//; $urls{ $1 }++; } # increases if ( $text =~ /\w+\+\+\s/ ) { $text =~ /(\w+\+\+)\s/; $increases{ $1 }++; } # decreases if ( $text =~ /\w+-- / ) { $text =~ /(\w+--) /; $decreases{ $1 }++; } } # echo urls foreach ( sort { $urls{ $b } <=> $urls {$a } } keys %urls ) { print $urls{ $_ } . "\t$_\n" } # echo decreases foreach ( sort { $decreases{ $b } <=> $decreases {$a } } keys %decreases ) { print $decreases{ $_ } . "\t$_\n" } # echo increases foreach ( sort { $increases{ $b } <=> $increases {$a } } keys %increases ) { print $increases{ $_ } . "\t$_\n" } # echo names foreach ( sort { $names{ $b } <=> $names {$a } } keys %names ) { print $names{ $_ } . "\t$_\n" } # done close INPUT; exit;