Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ça veut dire quoi ?

3 réponses
Avatar
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/\0/\0/,
...

et la, je ne comprends pas à quoi sert cette transformation
qui à priori ne transforme rien :))


juste pour comprendre, quelqu'un a une explication ?
--
klp

3 réponses

Avatar
Jean-Baptiste Mazon
"kurtz_le_pirate" writes:
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 :))


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.

Avatar
kurtz_le_pirate
"Jean-Baptiste Mazon" a écrit dans le message
de news:
"kurtz_le_pirate" writes:
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 :))

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 dcrit dans perlop; la signification de sa valeur
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.


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

Avatar
Jean-Baptiste Mazon
"kurtz_le_pirate" writes:
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".


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.