J'ai une variable qui contient une adresse IPv4 réseau de 4 octets (créée à l'aide de pack et de la représentation entière). J'ai une autre variable, aussi un réseau-ordre de 4 octets, sous-réseau. J'essaie de les ajouter ensemble et d'en ajouter un pour obtenir la première adresse IP dans le sous-réseau. Pour obtenir la représentation ASCII, je peux faire inet_ntoa($ip&$netmask)
pour obtenir l'adresse de base, mais c'est une erreur de faire inet_ntoa((($ip&$netmask)+1)
; Je reçois un message comme:Quelle est la manière la plus simple d'ajouter un à une chaîne binaire en Perl?
Argument "\n\r&\0" isn't numeric in addition (+) at test.pm line 95.
Alors ce qui se passe, le meilleur que je peux dire, est-il regarde les 4 octets, et de voir que les 4 octets ne représentent pas une chaîne numérique, puis en refusant de ajouter 1.
Une autre façon de le mettre: Ce que je veux faire est d'ajouter 1 à l'octet le moins significatif, que je sais est le 4ème octet? Autrement dit, je veux prendre la chaîne \n\r&\0
et finir avec la chaîne \n\r&\1
. Quelle est la manière la plus simple de le faire?
Y a-t-il un moyen de le faire sans avoir à déballer et réemballer la variable?
Je pense que vous avez raison. Essayait juste de voir s'il y avait un moyen plus simple, mais hélas, il n'y a peut-être pas. –