What's the simplest way of adding one to a binary string in Perl?
我有一个变量,它包含一个 4 字节的网络顺序 IPv4 地址(这是使用 pack 和整数表示创建的)。我有另一个变量,也是一个 4 字节的网络顺序子网。我正在尝试将它们加在一起并添加一个以获得子网中的第一个 IP。
为了得到ASCII表示,我可以做
1 2 3 | Argument"\ \ &\\0" isn't numeric in addition (+) at test.pm line 95. |
那么发生了什么,据我所知,最好的是,它正在查看 4 个字节,发现 4 个字节不代表数字字符串,然后拒绝加 1。
另一种说法:我想要它做的是在最低有效字节上加1,我知道这是第4个字节?也就是说,我想获取字符串
\
&\\0
\
&\\1
有没有办法做到这一点,而不必解包和重新打包变量?
发生的事情是你用
我认为没有更简单的方法。
混淆整数和字符串。也许下面的代码会有所帮助:
1 2 3 4 5 6 7 8 9 10 11 |
哪些输出:
1 | 192.168.250.1 |