# Programul este o platformă de test pentru a întelege mecanismul # prin care se pot crea referințe pe trei niveluri și modul în # care acestea pot fi corect dereferite. # Programul folosește doi parametri: # numele a două fișiere ce conțin ambele câte o listă de fișiere. use strict; use warnings; my $lista_1; my $lista_2; my $i; my @parametri; my @continut; my @cromozom_1; my @cromozom_2; my @genom; @parametri = @ARGV; $lista_1 = $parametri[0]; $lista_2 = $parametri[1]; open (FISIER, "<$lista_1"); @cromozom_1 = ; close FISIER; open (FISIER, "<$lista_2"); @cromozom_2 = ; close FISIER; for ($i=0; $i<=($#cromozom_1); $i++) { chomp($cromozom_1[$i]); } for ($i=0; $i<=($#cromozom_2); $i++) { chomp($cromozom_2[$i]); } #print "@cromozom_1\n"; #print "@cromozom_2"; for ($i=0; $i<=($#cromozom_1); $i++) { open (FISIER, "<$cromozom_1[$i]"); $continut[$i] = []; # variabila @continut conține doar adrese. close FISIER; } $genom[0] = \@continut; for ($i=0; $i<=($#cromozom_2); $i++) { open (FISIER, "<$cromozom_2[$i]"); $continut[$i] = []; # variabila @continut conține doar adrese. close FISIER; } $genom[1] = \@continut; print "@genom\n"; #nivel.0.toate.adresele print "$genom[0]\n"; #nivel.0.adresa.index.0 print "@{$genom[1]}\n"; #nivel.1.toate.adresele.index.1 print "${$genom[1]}[0]\n"; #nivel.1.adresa.index.0->index.1 print "@{$genom[1]->[0]}\n"; #nivel.2.toate.adresele.index.0->index.1 print "${$genom[1]->[0]}[0]"; #nivel.2.valoarea.index.0->index.0->index.1