вроде немного разобрался (сильная вешь книга) если что то не так понял, обьясните пожалуйста (и посылать на ... perldoc не надо 

 )
  if ($string !~ /^\\s+$/) {         # если $string с начала и до конца строки содержит одни прбелы
    $string =~ s/^\\s+//;         # заменить пробелы с начала строки на пусто
    $string =~ s/\\s+$//;         # заменить пробелы в конце строки на пусто
    $string =~ /^(\\d+)\\s+(.*)$/;      # начинается с (цыфра или несколько)пробел или несколько(.*)пусто
    my $number = $1;            # дедуктивным методом понимаю что это берется с (\\d+) - это я еще буду читать
    my $text = $2;            # аналогично только с (.*)
    if (defined $text && defined $number) {   # если заполнен $text и заполнен $number
      if (defined $hash{$text}) {      # если существует $hash{$text}
        $hash{$text} += $number;      # добаить 1 к ключу
      } else {               # иначе
        $hash{$text} = $number;         # создать новый ключь-значение