Salut a tous me revoila avec une autre casse tete et bien sur toute aide sera welcome

Exposé:
-------
Ecrire un script calcul.pl et une library appelée calcul-lib.pl. La bibliothèque doit contenir une fonction qui prend dans un array de nombres (de taille arbitraire). La fonction calcule alors la moyenne des nombres, le somme des nombres puis et un nouvel array composé des autresdes nombres du premier array divisé par 2. et enfin retournera une nouvelle liste avec toutes ces informations.

Ma solution
------------
Avant de passer a la creation de la library proprement dite j'ai voulu dans un premier temps creer un script avec une sub-routine (fonction) qui effectue les calculs ça parait peu etre idiot mais ça á semblé marché


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/perl
#require 'calculation-lib.pl';
 
my @data = (43, 21, 98, 5, 17, 52, 110, 80);
 
my ($sum, $number_of_items, $average);
my  @number_half;
 
foreach $n (@data) {
    $result = calculation($n);
}
 
print "$result\n",
"Data: ", join (", ", @data), "\n",
"Sum: $sum\n",
"Average: $average\n",
"New Data: ", join(" ", @number_half), "\n";
 
sub calculation() {
   my $n = shift(@_);
   $number_of_items++;
   $sum += $n;
   push @number_half, $n/2;
   $average = $sum / $number_of_items;
 
   return $result;
 }
#}
 
Output
--------
Data: 43, 21, 98, 5, 17, 52, 110, 80
Sum: 426
Average: 53.25
New Data: 21.5 10.5 49 2.5 8.5 26 55 40
 
 
Quand je dit ça semble idiot et bien c'est parceque quand j'essai d'isoler la fonction de calcul dans la librairie
 
sub calculation() {
    foreach $n (@data) {
   $number_of_items++;
   $sum += $n;
   push @number_half, $n/2;
   $average = $sum / $number_of_items;
 
   return $result;
 }
}
1;
et bien ca marche pas

Some help please

Merci pour votre sollicitude