📄 constants.pm
字号:
package IO::Compress::Gzip::Constants;use strict ;use warnings;use bytes;require Exporter;our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE);$VERSION = '2.008';@ISA = qw(Exporter);@EXPORT= qw( GZIP_ID_SIZE GZIP_ID1 GZIP_ID2 GZIP_FLG_DEFAULT GZIP_FLG_FTEXT GZIP_FLG_FHCRC GZIP_FLG_FEXTRA GZIP_FLG_FNAME GZIP_FLG_FCOMMENT GZIP_FLG_RESERVED GZIP_CM_DEFLATED GZIP_MIN_HEADER_SIZE GZIP_TRAILER_SIZE GZIP_MTIME_DEFAULT GZIP_XFL_DEFAULT GZIP_FEXTRA_HEADER_SIZE GZIP_FEXTRA_MAX_SIZE GZIP_FEXTRA_SUBFIELD_HEADER_SIZE GZIP_FEXTRA_SUBFIELD_ID_SIZE GZIP_FEXTRA_SUBFIELD_LEN_SIZE GZIP_FEXTRA_SUBFIELD_MAX_SIZE $GZIP_FNAME_INVALID_CHAR_RE $GZIP_FCOMMENT_INVALID_CHAR_RE GZIP_FHCRC_SIZE GZIP_ISIZE_MAX GZIP_ISIZE_MOD_VALUE GZIP_NULL_BYTE GZIP_OS_DEFAULT %GZIP_OS_Names GZIP_MINIMUM_HEADER );# Constant names derived from RFC 1952use constant GZIP_ID_SIZE => 2 ;use constant GZIP_ID1 => 0x1F;use constant GZIP_ID2 => 0x8B;use constant GZIP_MIN_HEADER_SIZE => 10 ;# minimum gzip header sizeuse constant GZIP_TRAILER_SIZE => 8 ;use constant GZIP_FLG_DEFAULT => 0x00 ;use constant GZIP_FLG_FTEXT => 0x01 ;use constant GZIP_FLG_FHCRC => 0x02 ; # called CONTINUATION in gzipuse constant GZIP_FLG_FEXTRA => 0x04 ;use constant GZIP_FLG_FNAME => 0x08 ;use constant GZIP_FLG_FCOMMENT => 0x10 ;#use constant GZIP_FLG_ENCRYPTED => 0x20 ; # documented in gzip sourcesuse constant GZIP_FLG_RESERVED => (0x20 | 0x40 | 0x80) ;use constant GZIP_XFL_DEFAULT => 0x00 ;use constant GZIP_MTIME_DEFAULT => 0x00 ;use constant GZIP_FEXTRA_HEADER_SIZE => 2 ;use constant GZIP_FEXTRA_MAX_SIZE => 0xFF ;use constant GZIP_FEXTRA_SUBFIELD_ID_SIZE => 2 ;use constant GZIP_FEXTRA_SUBFIELD_LEN_SIZE => 2 ;use constant GZIP_FEXTRA_SUBFIELD_HEADER_SIZE => GZIP_FEXTRA_SUBFIELD_ID_SIZE + GZIP_FEXTRA_SUBFIELD_LEN_SIZE;use constant GZIP_FEXTRA_SUBFIELD_MAX_SIZE => GZIP_FEXTRA_MAX_SIZE - GZIP_FEXTRA_SUBFIELD_HEADER_SIZE ;if (ord('A') == 193){ # EBCDIC $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x3f\xff]'; $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x0a\x11-\x14\x16-\x3f\xff]'; }else{ $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x1F\x7F-\x9F]'; $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x09\x11-\x1F\x7F-\x9F]';} use constant GZIP_FHCRC_SIZE => 2 ; # aka CONTINUATION in gzipuse constant GZIP_CM_DEFLATED => 8 ;use constant GZIP_NULL_BYTE => "\x00";use constant GZIP_ISIZE_MAX => 0xFFFFFFFF ;use constant GZIP_ISIZE_MOD_VALUE => GZIP_ISIZE_MAX + 1 ;# OS Names sourced from http://www.gzip.org/format.txtuse constant GZIP_OS_DEFAULT=> 0xFF ;%GZIP_OS_Names = ( 0 => 'MS-DOS', 1 => 'Amiga', 2 => 'VMS', 3 => 'Unix', 4 => 'VM/CMS', 5 => 'Atari TOS', 6 => 'HPFS (OS/2, NT)', 7 => 'Macintosh', 8 => 'Z-System', 9 => 'CP/M', 10 => 'TOPS-20', 11 => 'NTFS (NT)', 12 => 'SMS QDOS', 13 => 'Acorn RISCOS', 14 => 'VFAT file system (Win95, NT)', 15 => 'MVS', 16 => 'BeOS', 17 => 'Tandem/NSK', 18 => 'THEOS', GZIP_OS_DEFAULT() => 'Unknown', ) ;use constant GZIP_MINIMUM_HEADER => pack("C4 V C C", GZIP_ID1, GZIP_ID2, GZIP_CM_DEFLATED, GZIP_FLG_DEFAULT, GZIP_MTIME_DEFAULT, GZIP_XFL_DEFAULT, GZIP_OS_DEFAULT) ;1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -