给定一个字符串$ old_str,我试图将前N位(而不是字节)提取到$ new_str中.我一直在阅读包文档和perlpacktut,但我绝望地感到困惑.这是我目前的立场:
my $old_str = "9876543210";
# Extract the first 5 bits
my $new_str = pack("B5", unpack("B*", $old_str));
printf "%#b | %#b\n", $new_str, $old_str;
Run Code Online (Sandbox Code Playgroud)
这会产生:
0b1000 | 0b1001001100101100000001011011101010
Run Code Online (Sandbox Code Playgroud)
但我想要这个:
0b10010 | 0b1001001100101100000001011011101010
Run Code Online (Sandbox Code Playgroud) perl ×1