crep has asked for the wisdom of the Perl Monks concerning the following question:
Thanks, -Jack C jack@crepinc.com#!/usr/bin/perl use Switch; print "Frequency Counter\nEnter file to analyze:"; my $infile = <STDIN>; chomp $infile; my $indata = ""; my $count=0; my $a=0; my $b=0; my $c=0; my $d=0; my $e=0; my $f=0; my $g=0; my $h=0; my $i=0; my $j=0; my $k=0; my $l=0; my $m=0; my $n=0; my $o=0; my $p=0; my $q=0; my $r=0; my $s=0; my $t=0; my $u=0; my $v=0; my $w=0; my $x=0; my $y=0; my $z=0; my $num0=0; my $num1=0; my $num2=0; my $num3=0; my $num4=0; my $num5=0; my $num6=0; my $num7=0; my $num8=0; my $num9=0; open(F,"$infile") or die "can't open $infile: $!"; while (read(F, $buffer, 1024)) { chomp $buffer; $indata = $indata.$buffer; } close F; print "Now analyzing..."; my $i=0; my $len = length $indata; my $tmp = ""; for (($i=0; $i<$len; $i++) { $tmp = uc(substr(($indata,$i,1)); switch (($tmp) { case "A" { $a += 1; $count = $count + 1; } case "B" { $b += 1; $count = $count + 1; } case "C" { $c += 1; $count = $count + 1; } case "D" { $d += 1; $count = $count + 1; } case "E" { $e += 1; $count = $count + 1; } case "F" { $f += 1; $count = $count + 1; } case "G" { $g += 1; $count = $count + 1; } case "H" { $h += 1; $count = $count + 1; } case "I" { $i += 1; $count = $count + 1; } case "J" { $j += 1; $count = $count + 1; } case "K" { $k += 1; $count = $count + 1; } case "L" { $l += 1; $count = $count + 1; } case "M" { $m += 1; $count = $count + 1; } case "N" { $n += 1; $count = $count + 1; } case "O" { $o += 1; $count = $count + 1; } case "P" { $p += 1; $count = $count + 1; } case "Q" { $q += 1; $count = $count + 1; } case "R" { $r += 1; $count = $count + 1; } case "S" { $s += 1; $count = $count + 1; } case "T" { $t += 1; $count = $count + 1; } case "U" { $u += 1; $count = $count + 1; } case "V" { $v += 1; $count = $count + 1; } case "W" { $w += 1; $count = $count + 1; } case "X" { $x += 1; $count = $count + 1; } case "Y" { $y += 1; $count = $count + 1; } case "Z" { $z += 1; $count = $count + 1; } case "0" { $num0 += 1; $count = $count + 1; } case "1" { $num1 += 1; $count = $count + 1; } case "2" { $num2 += 1; $count = $count + 1; } case "3" { $num3 += 1; $count = $count + 1; } case "4" { $num4 += 1; $count = $count + 1; } case "5" { $num5 += 1; $count = $count + 1; } case "6" { $num6 += 1; $count = $count + 1; } case "7" { $num7 += 1; $count = $count + 1; } case "8" { $num8 += 1; $count = $count + 1; } case "9" { $num9 += 1; $count = $count + 1; } } } system("cls"); system("clear"); print "Count for $infile.\nOf $count charactors:\n\n"; print "A occured $a times, or ".($a/$count)."%.\n"; print "B occured $b times, or ".($b/$count)."%.\n"; print "C occured $c times, or ".($c/$count)."%.\n"; print "D occured $d times, or ".($d/$count)."%.\n"; print "E occured $e times, or ".($e/$count)."%.\n"; print "F occured $f times, or ".($f/$count)."%.\n"; print "G occured $g times, or ".($g/$count)."%.\n"; print "H occured $h times, or ".($h/$count)."%.\n"; print "I occured $i times, or ".($i/$count)."%.\n"; print "J occured $j times, or ".($j/$count)."%.\n"; print "K occured $k times, or ".($k/$count)."%.\n"; print "L occured $l times, or ".($l/$count)."%.\n"; print "M occured $m times, or ".($m/$count)."%.\n"; print "N occured $n times, or ".($n/$count)."%.\n"; print "O occured $o times, or ".($o/$count)."%.\n"; print "P occured $p times, or ".($p/$count)."%.\n"; print "Q occured $q times, or ".($q/$count)."%.\n"; print "R occured $r times, or ".($r/$count)."%.\n"; print "S occured $s times, or ".($s/$count)."%.\n"; print "T occured $t times, or ".($t/$count)."%.\n"; print "U occured $u times, or ".($u/$count)."%.\n"; print "V occured $v times, or ".($v/$count)."%.\n"; print "W occured $w times, or ".($w/$count)."%.\n"; print "X occured $x times, or ".($x/$count)."%.\n"; print "Y occured $y times, or ".($y/$count)."%.\n"; print "Z occured $z times, or ".($z/$count)."%.\n"; print "0 occured $num0 times, or ".($num0/$count)."%.\n"; print "1 occured $num1 times, or ".($num1/$count)."%.\n"; print "2 occured $num2 times, or ".($num2/$count)."%.\n"; print "3 occured $num3 times, or ".($num3/$count)."%.\n"; print "4 occured $num4 times, or ".($num4/$count)."%.\n"; print "5 occured $num5 times, or ".($num5/$count)."%.\n"; print "6 occured $num6 times, or ".($num6/$count)."%.\n"; print "7 occured $num7 times, or ".($num7/$count)."%.\n"; print "8 occured $num8 times, or ".($num8/$count)."%.\n"; print "9 occured $num9 times, or ".($num9/$count)."%.\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Switch statement?
by Corion (Patriarch) on Jul 18, 2004 at 20:34 UTC | |
by The Mad Hatter (Priest) on Jul 18, 2004 at 20:37 UTC | |
by ihb (Deacon) on Jul 18, 2004 at 21:02 UTC | |
|
Re: Switch statement?
by revdiablo (Prior) on Jul 19, 2004 at 01:58 UTC | |
by Anonymous Monk on Jul 19, 2004 at 13:55 UTC | |
by crep (Novice) on Jul 19, 2004 at 14:55 UTC | |
by Corion (Patriarch) on Jul 19, 2004 at 20:15 UTC | |
by husker (Chaplain) on Jul 19, 2004 at 20:00 UTC | |
|
Re: Switch statement?
by pbeckingham (Parson) on Jul 18, 2004 at 22:39 UTC | |
|
Re: Switch statement?
by pg (Canon) on Jul 18, 2004 at 23:11 UTC | |
by husker (Chaplain) on Jul 19, 2004 at 19:58 UTC | |
|
Re: Switch statement?
by crep (Novice) on Jul 19, 2004 at 21:26 UTC | |
by Corion (Patriarch) on Jul 19, 2004 at 22:06 UTC | |
by crep (Novice) on Jul 21, 2004 at 13:53 UTC |