Ok, voici l'affaire. J'ai un tableau (entré à partir d'un fichier de 400 Mo) où si j'exécute la commande sort(), comp manque de mémoire. Le fichier d'entrée n'est pas le problème, j'ai donc décidé de décomposer le tableau initial en plus petits tableaux sur lesquels je peux effectuer le tri. Je peux casser le tableau initial en tableaux de taille 100k, ce que fait mon code.Appel push dans le tableau d'écrasement Perl
(pour les besoins de ce test, je l'ai se est contractée le fichier de 400 Mo à 40 Mo)
-je exécuter ma pause code tableau, et à la première itération, j'ai un tableau de 100k comme référence dans ma @arrayList. Mon code est ceci:
push @arrayList, \@sorted; #@sorted is the sorted version of the 100k array
$temp = @arrayList; #returns 1, which it should
@arrayTemp2 = @{$arrayList[0]};
$temp = @arrayTemp2; #returns 100k, which it should
@arrayTemp2 = @{$arrayList[1]};
$temp = @arrayTemp2; #returns 0 since it is uninitialized
Sur la boucle suivante dans la boucle, le tableau est trié le reste du tableau initial, seulement 23k. Même code fonctionne à nouveau, avec ces résultats:
push @arrayList, \@sorted; #@sorted is the sorted version of the 23k array
$temp = @arrayList; #returns 2, which it should
@arrayTemp2 = @{$arrayList[0]};
$temp = @arrayTemp2; #returns 23301, which is wrong
@arrayTemp2 = @{$arrayList[1]};
$temp = @arrayTemp2; #returns 23301, which is right.
J'ai essayé d'utiliser toutes les différentes façon dont je peux penser à résoudre ce problème, et je n'ai tout simplement pas des idées de gauche. De l'aide?
Merci
Et c'est vraiment aussi simple que ça ... Ça me rend triste à l'intérieur: P Merci beaucoup :) – ThePirateSheep