Bonjour

J'ai un code que j'ai pas compris qui utilise la fonction map

ce code il lit deux fichier

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
use warnings;
 
my $kTestLines = 2000000;
my $kMinSame   = 2;
my $testA      = 'trans2';
my $testB      = 'gh3-2.n';
 
srand (1);
buildTestFile($_) for $testA, $testB;
 
open my $inA, '<', $testA or die "Can't open $testA: $!\n";
open my $inB, '<', $testB or die "Can't open $testB: $!\n";

par la suite on la fonction buldTestFile($_)
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
sub buildTestFile {
    my ($fName) = @_;
 
    open my $fOut, '>', $fName or die "Can't create '$fName': $!\n";
 
    for (1 .. $kTestLines) {
 
 
 
 
        my %words = map {$_ => undef} map {
            join '', map {randLetter()} 1 .. 4
        } 1 .. 4;
 
        print $fOut join (' ', keys %words), "\n";
    }
}
 
 
sub randLetter {
    return chr 65 + rand 26;
}
ce que j'ai pas compris c'est la partie du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 my %words = map {$_ => undef} map {
            join '', map {randLetter()} 1 .. 4
        } 1 .. 4;
 
        print $fOut join (' ', keys %words), "\n";
S'il vous plait que contient exactement %words et que font les différentes fonction map

Merci