首页 > 编程语言 >无涯教程-Perl - pack函数

无涯教程-Perl - pack函数

时间:2023-08-12 18:05:19浏览次数:37  
标签:字节 无涯 整数 Perl print Array bits pack

描述

此函数对LIST中的表达式求值并将其打包为EXPR指定的二进制结构。使用下表中显示的字符指定格式-

每个字符可以可选地跟一个数字,该数字指定要打包的值的类型的重复计数。根据格式,该值是半字节,字符或什至位。 *的值重复*,因为LIST中保留了尽可能多的值。可以使用拆包功能将值拆包。

例如,a5表示需要五个字母。 b32表示期望使用32位。 h8表示期望8个字节(或4个字节)。 P10表示该结构的长度为10个字节。

语法

以下是此函数的简单语法-

pack EXPR, LIST

返回值

  • 此函数使用TEMPLATE返回LIST中数据的压缩版本,以确定如何编码。

下表列出了在TEMPLATE中使用的值。

Sr.No. Character & 描述
1

a

用空字符填充的ASCII字符串

2

A

ASCII字符串用空格填充

3

b

位串,从低到低

4

B

比特串,最高优先

5

c

有符号字符(范围通常为-128至127)

6

C

无符号字符(通常为8位)

7

d

双精度浮点数

8

f

单精度浮点数

9

h

十六进制字符串,最低位在前

10

H

十六进制字符串,高位在前

11

i

有符号整数

12

无符号整数

13

l

有符号长整数

14

L

无符号长整数

15

n

网络顺序中的短整数

16

N

网络顺序中的长整数

17

p

指向字符串的指针

18

s

有符号的短整数

19

S

无符号的短整数

20

u

转换为uuencode格式

21

v

VAX(小尾数)顺序的短整数

22

V

VAX顺序中的长整数

23

x

空字节

24

X

表示"返回一个字节"

25

@

用空值填充(ASCII 0)

以下是显示其基本用法的示例代码-

#!/usr/bin/perl -w

$bits=pack("c", 65);
# prints A, which is ASCII 65.
print "bits are $bits\n";
$bits=pack( "x" );
# $bits is now a null chracter.
print "bits are $bits\n";
$bits=pack( "sai", 255, "T", 30 );
# creates a seven charcter string on most computers'
print "bits are $bits\n";

@array=unpack( "sai", "$bits" );

#Array now contains three elements: 255, T and 30.
print "Array $array[0]\n";
print "Array $array[1]\n";
print "Array $array[2]\n";

执行上述代码后,将产生以下输出-

bits are A
bits are 
bits are �T
Array 255
Array T
Array 30

参考链接

https://www.learnfk.com/perl/perl-pack.html

标签:字节,无涯,整数,Perl,print,Array,bits,pack
From: https://blog.51cto.com/u_14033984/7060275

相关文章

  • 无涯教程-Perl - ord函数
    描述此函数返回EXPR指定的字符的ASCII数值,如果省略则返回$_。例如,ord('A')返回值为65。语法以下是此函数的简单语法-ordEXPRord返回值该函数返回整数。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-wprint("ord()",ord('G'),"\n");执行上述代码后......
  • 无涯教程-Perl - my函数
    描述此函数声明LIST中的变量在包围式块内按词法范围。如果指定了多个变量,则所有变量都必须用括号括起来。语法以下是此函数的简单语法-myLIST返回值此函数不返回任何值。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-wmy$string="Wearetheworld";p......
  • 无涯教程-Perl - msgsnd函数
    描述此功能使用可选的FLAGS将消息MSG发送到消息队列ID。语法以下是此函数的简单语法-msgsndID,MSG,FLAGS返回值该函数在错误时返回0,在成功时返回1。参考链接https://www.learnfk.com/perl/perl-msgsnd.html......
  • 无涯教程-Perl - msgget函数
    描述此函数调用系统VIPC函数msgget(2)。返回消息队列标识,如果有错误,则返回未定义的值。语法以下是此函数的简单语法-msggetKEY,FLAGS返回值该函数将在错误时返回undef,并在成功时返回消息队列ID。参考链接https://www.learnfk.com/perl/perl-msgget.html......
  • 无涯教程-Perl - msgrcv函数
    描述此函数从队列ID接收消息,并将消息放入变量VAR中,最大大小为SIZE。语法以下是此函数的简单语法-msgrcvID,VAR,SIZE,TYPE,FLAGS返回值该函数在错误时返回0,在成功时返回1。参考链接https://www.learnfk.com/perl/perl-msgrcv.html......
  • 无涯教程-Perl - mkdir函数
    描述此功能使用MODE指定的模式创建一个名称和路径EXPR的目录,为清楚起见,应将其作为八进制值提供。语法以下是此函数的简单语法-mkdirEXPR,MODE返回值如果失败,此函数返回0,如果成功,则返回1。例以下是显示其基本用法的示例代码-#!/usr/bin/perl-w$dirname="/tm......
  • 无涯教程-Perl - lock函数
    描述此函数将咨询锁放在共享变量或THING中包含的引用对象上,直到该锁超出范围。lock()是一个"弱关键字":这意味着,如果您在调用该函数之前已通过该名称定义了该函数,则将改为调用该函数。语法以下是此函数的简单语法-lockTHING返回值此函数不返回任何值。参考链接htt......
  • 无涯教程-Perl - link函数
    描述此函数创建一个新文件名NEWFILE,链接到文件OLDFILE。该函数创建一个硬链接;如果需要符号链接,请使用符号链接功能。语法以下是此函数的简单语法-linkOLDFILE,NEWFILE返回值如果失败,此函数返回0,如果成功,则返回1。例以下是显示其基本用法的示例代码,这将使用现有......
  • 无涯教程-Perl - lc函数
    描述此函数返回小写版本的EXPR,如果省略EXPR,则返回$_。语法以下是此函数的简单语法-lcEXPRlc返回值此函数返回小写版本的EXPR,如果省略EXPR,则返回$_。例以下是显示其基本用法的示例代码-#!/usr/bin/perl$orig_string="ThisisTestandCAPITAL";$changed_st......
  • 无涯教程-Perl - last函数
    描述这不是功能。last关键字是一个循环控制语句,该语句立即导致循环的当前迭代变为最后一个。不再执行任何语句,循环结束。如果指定了LABEL,则它将退出LABEL标识的循环,而不是当前封闭的循环。语法以下是此函数的简单语法-lastLABELlast返回值这不会返回任何值。例......