__DATA__
sender@domain1.com
sender@domain2.com
noreply@domain1.com
noreply@domain1.com
sender@domain1.com
noreply@domain1.com
####
my $logfile = '/tmp/senders.txt';
open my $fh, '<', $logfile or die "Could not open $logfile : $!";
my %count=();
while (my $line = <$fh>) {
foreach my $word (split /\s+/, $line) {
++$count{$word};
#print "$word\n";
#print "$count{$word}\n";
#print "
";
#print " \n";
}
}
for my $word ( (sort { $count{$b} <=> $count{$a} } keys %count) [0..19] ) {
#print "$word $count{$word}\n"; # THIS shows top 20 emails address and its count.
}
close $fh;
####
my @word = map{ $count{$_} || 0 } qw($word);
my @count_word = map{ $count{$_} || 0 } qw($count{$word});
my $data = GD::Graph::Data->new([
[@word],
[@count_word],
]) or die GD::Graph::Data->error;
####
#!/usr/bin/perl
use CGI ':standard';
use strict;
use warnings;
use GD::Graph;
use GD::Graph::hbars;
my $logfile = '/tmp/senders.txt';
open my $fh, '<', $logfile or die "Could not open $logfile : $!";
my %count=();
while (my $line = <$fh>) {
foreach my $word (split /\s+/, $line) {
++$count{$word};
#print "$word\n";
#print "$count{$word}\n";
#print "
";
#print " \n";
}
}
for my $word ( (sort { $count{$b} <=> $count{$a} } keys %count) [0..19] ) {
#print "$word $count{$word}\n";
}
close $fh;
my @word = map{ $count{$_} || 0 } qw($word); #I think This is where I have gone wring
my @count_word = map{ $count{$_} || 0 } qw($count{$word}); # I think This is where I have gone wring
my $data = GD::Graph::Data->new([
[@word],
[@count_word],
]) or die GD::Graph::Data->error;
my $graph = new GD::Graph::hbars(750,450);
$graph->set(
x_label => 'Email Users',
x_label_position => 1/2,
x_labels_vertical => 1,
y_label => 'Count',
title => 'Top Email Users',
values_vertical => 0,
show_values => 1,
box_axis => 0
);
my $font = '/usr/share/fonts/gnu-freefont_freesans/FreeSans.ttf';
#my $font = '/usr/share/fonts/dejavu/DejaVuSans.ttf';
$graph->set_title_font($font,14);
$graph->set_values_font($font, 8);
$graph->set_x_axis_font($font,8);
$graph->set_y_axis_font($font,8);
$graph->set_legend_font($font,8);
$graph->set_x_label_font($font,12);
$graph->set_y_label_font($font,12);
print header('image/png');
$graph->plot($data) or die $graph->error;
binmode STDOUT;
print $graph->gd->png;