1
所以我知道有些库可以为我做到这一点,但我想学习打包/解压缩。了解包/解包perl
我的目标是我有一个用户输入一个IP地址/子网掩码,然后验证它是有效的。
我认为这样做的一种方式是“sprintf”并获得二进制值可以说192.168.1.1。这是一个好的解决方案,但然后我需要预先安排所需的0的数量吨使它'8位'
这似乎是很多不必要的工作,当pack
可以把东西以二进制格式。我使用N
模板,我发现http://perldoc.perl.org/functions/pack.html我的第一个目标是获得一个IP地址,将其转换为二进制,然后将其转换回来。
$ip = "192.168.1.1";
$bi = pack ("N*", $ip);
print unpack("N*",$bi),"\n";
和我得到的输出是192
所以很显然,我不明白是怎么回事。
这里究竟发生了什么?
始终使用'使用严格的;使用警告qw(全部);'! (“'Argument”192.168.1.1“在包中不是数字”) – ikegami