__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;