Code :
#!/usr/bin/perl use v5.10.1; # code propre use strict; use warnings; use autodie; use Data::Dumper; #utile uniquement pour la mise au point my ($input1, $input2, $input3) = ('herisstab1.txt', 'herisstab2.txt', 'herisstab3.txt'); my ($fh); my (%loc, %info); while (<$fh> ) { next if $. == 1; # On saute la ligne de titre if (/^ (\S+ )\ s+ (\S+ )\ s*$/ ) { $loc{$1} = $2; } } while (<$fh> ) { next if $. == 1; # On saute la ligne de titre if (/^ (\S+ )\ s+ (\S+ )\ s*$/ ) { $info{$1}{'ordi'} = $2; } } while (<$fh> ) { next if $. == 1; # On saute la ligne de titre if (/^ (\S+ )\ s+ (\S+ )\ s*$/ ) { $info{$1}{'location'} = $loc{$2}; } } } } # a partir d'ici, tout est dans %info # faire print Dumper(%info); pour en voir le contenu # a toi de l'exploiter comme cela te convient # un exemple possible: my @result; push @result, "location_code\tasset_tag\n"; my $line = $info{$_}{'location'}."\t".$info{$_}{'ordi'}."\n"; } # @result = sort(@result); # si tu veux trier par ville, auquel cas le foreach (sort(keys %info)) peut être remplacé par un simple foreach (keys %info)
|