Программа подсчитывающая количества строк, слов и символов в файлах

code: #perl
  1. #!/usr/bin/perl
  2.  
  3. use warnings;
  4.  
  5. my ($linesTotal, $wordsTotal, $charsTotal)=(0, 0, 0);
  6. my $fileCount=0;
  7.  
  8. for my $filename(@ARGV)
  9. {
  10.     unless(open $fd, '<', $filename)
  11.     {
  12.         warn "$0: Невозможно открыть файл «$filename»: $!\n";
  13.         next;
  14.     }
  15.  
  16.     my ($lines, $words, $chars)=(0, 0, 0);
  17.    
  18.     $fileCount++;
  19.    
  20.     my $flag=0;
  21.     my $c;
  22.  
  23.     while(read $fd, $c, 1)
  24.     {
  25.         $chars++;
  26.        
  27.         $lines++ if $c eq "\n";
  28.  
  29.         if($c=~m/\s/)
  30.         {
  31.             $words++ if $flag;
  32.             $flag=0;
  33.         }
  34.         else
  35.         {
  36.             $flag=1;
  37.         }
  38.     }
  39.  
  40.     $linesTotal+=$lines;
  41.     $wordsTotal+=$words;
  42.     $charsTotal+=$chars;
  43.  
  44.     print "$filename\t$lines\t$words\t$chars\n";
  45.     close $fd;
  46. }
  47.  
  48. print "\nВсего\t$linesTotal\t$wordsTotal\t$charsTotal\n" if $fileCount>1;
Поделиться:

Похожие статьи: