perl objet problème avec l'instruction "sort"?
Bonsoir,
j'utilise l'instruction sort pour trier un tableau csv à l'intérieur d'une méthode
de classe qui utilise pour se faire une fonction (subroutine) qui elle
ne peut à priori pas être une méthode de classe.
Code:
@lines = sort CmpCsv @lines;
La fonction CmpCsv ne peut par nature avoir des arguments et les clés de tri
font parties des propriétés de l'objet.
Pour que cette fonction puisse voir les propriétés de l'objet j'ai créé une variable de classe $ego que je valorise à $self.
$ego est ensuite utilisée dans CmpCsv
ça marche mais j'ai un problème de ré-entrance lorsque je crée de nouveau objet dans une des méthodes de l'objet lui-même (récursivité).
Je peux imaginer des solutions de contournements qui sont des bidouilles
pour me dépanner temporairement mais je ne vois pas comment
faire cela proprement en respectant l'approche objet.
:?
merci pour l'optimisation
Désolé pour l'indentation, ce n'est pas celle recommendée par le "C white book"
mais elle ne différe que par le retour à la ligne avant le "{". Ceci parce j'utilise la commande % sous vim qui se déplace sur l'autre accolade du bloc et que j'essaye d'économiser mes yeux (moins de mouvement que si c'est en diagonale).
Merci pour la méthode schwartzienne, ç ava aller plus vite.
Pour la problèmatique :
Dans une méthode objet l'objet est connu par self qui est transmis lors de l'appel comme premier argument $self->methode()
on a dans la méthode
Code:
1 2 3
|
sub methode()
my $self = shift; |
mais avec la fonction de tri l'objet n'est pas transmis donc pas connu !