Thread Perlskript (8 answers)
Opened by Gast at 2006-05-09 22:39

Gast Gast
 2006-05-09 22:39
#7549 #7549
Hi.

Ich bin Anfänger in Programmierung. Im Programm geht es um's Berechnen von dem arithmetischen Mittel der Buchstaben in einem englischen Text. Ich versuche das Programm zu verstehen.
Hier ist der Skript:
#Perlskript "word_stat.pl":
#########################################################################
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use strict;
for(my $i=0; $i<@ARGV; $i++) { process($ARGV[$i]); }
sub process {
     my ($file, $n, $avg, $s2, $median, %len_stat) = $_[0];
     open(FILE, $file) or die;
     foreach my $line (<FILE>) {
           chomp($line);
           if($line =~ /(\w+)$/) { # verarbeitet auch Frequenzlisten
                my $len = length($1);
                $len_stat{$len}++;
                $avg += $len;
                $n++;
           }
     }
     close(FILE);
     # arithmetisches Mittel
     $avg /= $n;
print("$avg\n");
}


Meine Fragen:
1) Was könnte @ARGV sein. Wenn ich das richtig verstehe, sollte es ein Array sein, aber was ist den da gespeichert und warum wurde er vorher nicht deklariert
2) Was bedeutet volgende Zeile
my ($file, $n, $avg, $s2, $median, %len_stat) = $_[0];
und zwar '$_[0]'
3) was wird hier gemacht
{ process($ARGV[$i]); }
4)Die 'print' Funktion hab ich selbst dazugeschrieben, wenn ich aber das Programm starte, wird kein Ergebnis ausgegeben

Ich freue mich um die Antworten und bitte um möglichst dettalierte Erklärungen
Danke\n\n

<!--EDIT|GwenDragon|1147200170-->

View full thread Perlskript