Bonjour,

est ce que quelqu'un, plein de bonne volonté, pourrai m'expliquer ce code ?

le résultat convient presque à mes attentes mais je n'arrive pas à déchiffrer le code (surtout au niveau de la syntaxe des tableaux),
si je veux le façonner pour mon cas d'utilisation il faut que je le comprenne.

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
#!/usr/bin/perl
 
use warnings;
use strict;
 
open(TCD,"tcd") || die ("Erreur d'ouverture de tcd");
 
my %h;
my $l;
my @col = 'A' .. 'D';
while(<TCD>){
  next if /^$/;
  /(\w+)\s*(\w+)\s*(\w+)/;
  push @{$h{$3}{$1}},$2;
 
  for $l(@col){
    push @{$h{$3}{$l}},0 unless exists $h{$3}{$l};
  }
}
 
print "machine @col\n";
for my $k(keys %h){
  print "$k";
  for my $kk(sort keys %{$h{$k}}){
    print " ",eval ( join "+",@{$h{$k}{$kk}});
  }
  print "\n";
}
le fichier TCD :

A 20 machine1
B 5 machine1
A 5 machine2
C 10 machine2
A 50 machine1
A 20 machine1
B 5 machine1
A 5 machine2
C 10 machine2
D 50 machine1
D 20 machine1




le résultat :

machine A B C D
machine1 90 10 0 70
machine2 10 0 20 0


et l'autre question, a quel moment intervient l'addition (parce que je n'en veux pas)?

merci !