If you want to print a / for every 5 or part of five (ie. 1-5 = /, 6-10
= //, etc) then add 4 to word_count{$_).

On 05 Jun 2001 09:37:54 -0400, Chas Owens wrote:
> Use the x operator:
> 
> #!/usr/bin/perl -w
> 
> use strict; #make me really behave
> 
> my @words;
> my %word_count;
> 
> open ( FILE, shift) or die "Cannot open image file $_\n";
> while (<FILE>) {
>     chomp;                   #get rid of newline (\n)
>     @words = split;          #split on spaces
>     foreach (@words) {
>         $word_count{$_}++;  #add one to word_count for 
>                             #every occurance of word
>     }
> }
> 
> foreach (keys %word_count) {
>     #print word followed by (word count divided by 5) /s
>     #NB: this will ony print /s if word_count is >= 5
>     printf("%-05s%s\n", $_, '/' x ($word_count{$_}/5));
> }
> 
> 
> 
> 
> On 05 Jun 2001 22:52:42 +1000, chris robinson wrote:
> > I have the following code.  This code prints a / for each occurance of a
> > certain number/word in a file.  How would I change this to print a / for
> > each 5 instances of a given word/number?
> > 
> > Thanks
> > 
> > #!/usr/bin/perl 
> > 
> > my $file;
> > $file = $ARGV[0];
> > open( "file",  "< $file") or die "Cannot open image file $file\n";
> > $text = join('', <file>);
> > %count = ();
> > for (split(/\s/, $text)) {
> >  $count{$_} .="/";
> >  
> > }
> > 
> > foreach $word (sort keys %count) {
> >  next unless $word =~ /\d/;
> >  next if $word =~ /p2/i;
> >  next if $word =~ /^\#/
> > ;  
> > 
> >  printf("%-05s%s\n", $word, $count{$word});
> > 
> > }
> > 
> > 
> 
> -- 
> Today is Sweetmorn, the 10th day of Confusion in the YOLD 3167
> You are what you see.
> 

-- 
Today is Sweetmorn, the 10th day of Confusion in the YOLD 3167
Kallisti!


Reply via email to