Perl NULL终止字符串
问题描述:
我正在使用Net::SMPP包来处理SMPP协议。 协议参数之一应该是NULL终止的字符串。 当我把它我做的:Perl NULL终止字符串
my $receipted_message_id = '111111'."\0";
当我收到我剥最后一个字符。
是否有更好的方式在Perl中使用“C String”?
答
你可以用一个简单的替换修剪终止空:
$receipted_message_id =~ s/\0$//;
...或者干脆砍()的最后一个字符:
chop $receipted_message_id;
答
你可能想看看包并解压(参阅perldoc -f包),具体为:与需要特定的二进制协议与其他系统时
Z A null-terminated (ASCIZ) string, will be null padded.
这些功能是金色的,无论是零个结尾的字符串,或以某种“网络顺序”或类似方式(高位或低位)输入。
这似乎是一个非常好的解决方案,不是很复杂和Perlish的方法。是否有理由认为应该有不同的解决方案? –