ça veut dire quoi ?
Le
kurtz_le_pirate

bonjour,
je travaille en ce moment sur les eventlog de windows
avec Win32::EventLog et en regardant le fichier
"EventLog.pm" je trouve :
$self->{Strings} =~ tr/ / /,
et la, je ne comprends pas à quoi sert cette transformation
qui à priori ne transforme rien :))
juste pour comprendre, quelqu'un a une explication ?
--
klp
je travaille en ce moment sur les eventlog de windows
avec Win32::EventLog et en regardant le fichier
"EventLog.pm" je trouve :
$self->{Strings} =~ tr/ / /,
et la, je ne comprends pas à quoi sert cette transformation
qui à priori ne transforme rien :))
juste pour comprendre, quelqu'un a une explication ?
--
klp
Le code complet est:
GetEventLogText($self->{Source},
$self->{EventID},
$self->{Strings},
$self->{Strings} =~ tr/ / /,
my $message);
Cette transformation qui ne transforme rien n'est effectivement pas
une transformation: elle est placée en argument de GetEventLogText
pour renvoyer une valeur.
L'opérateur tr est dÄrit dans perlop; la signification de sa vale ur de
retour est détaillée dans le premier paragraphe. L'usage qui en est
fait dans EventLog.pm est un des exemples, sous une autre forme.
"kurtz_le_pirate"
mais oui... c'est une utilisation pas habituelle de cette fonction.
la doc dit "it returns the number of characters replaced or deleted".
c'est une subtilité pour compter le nombre de chaines "à la c".
merci de ton aide, je vais me couché un peu moins bète.
--
klp
Je conviens qu'elle soit assez surprenante au premier abord, quand on
ne voit en tr qu'un opérateur de transformation. À ma connaissance,
c'est tout de même la manière la plus rapide de faire. Je pense que
l'idiome est répandu pour ce besoin, mais que le besoin lui-même est
plus rare.