“W”在 Perl 的解包函数中究竟做了啥?

Posted

技术标签:

【中文标题】“W”在 Perl 的解包函数中究竟做了啥?【英文标题】:What exactly "W" do in unpack function in Perl?“W”在 Perl 的解包函数中究竟做了什么? 【发布时间】:2010-08-16 06:14:22 【问题描述】:

我不明白“W”到底是做什么的。

my $x = "this is my string";

print unpack("W",substr($x,0,1));

打印:116

my $x = "this is my string";

print unpack("W",$x);

静态打印:116

【问题讨论】:

Subham,你所有的答案都是关于:perl 函数位于一个命令后面:'perldoc perlfunc' - 强烈建议阅读整个 perldoc;教会了我很多东西。 【参考方案1】:

来自perldoc:W An unsigned char value (can be greater than 255).

您的两个示例都返回相同的内容,因为您的 unpack 参数 "W" 仅使用一个字符。请改用"W*"

【讨论】:

是的。你是对的,但为什么是 116? “t”的 ASCII 值不是那个。 ord 't' == 116The ASCII code for capital T is 84 and for lowercase t is 116 - en.wikipedia.org/wiki/T Shubham: man ascii 适用于任何 unix 系统。这是检查 ascii 字符的十六进制/八进制/十进制值的最快方法。

以上是关于“W”在 Perl 的解包函数中究竟做了啥?的主要内容,如果未能解决你的问题,请参考以下文章

Perl 中的解包功能要求

解包函数将如何在 perl 中用于此代码 $str =~ s/([^\w ])/'%'.unpack('H2', $1)/eg;

OpenGL Bindless Texture 函数 glMakeTextureHandleNonResident 究竟做了啥?

“cpan 报告”命令究竟做了啥?

Gradle 中的transitive = true 究竟做了啥(w.r.t. crashlytics)?

C#中Python的解包函数