Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
doc
/
perl-Compress-Stream-Zstd
/
eg
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
zstd.pl
890 B
-rwxr-xr-x
2020-07-31 20:40:30
Edit
Del
Editing: zstd.pl
(890 B)
Path: /usr/share/doc/perl-Compress-Stream-Zstd/eg/zstd.pl
Back
#!/usr/bin/env perl use strict; use warnings; use Compress::Stream::Zstd qw(ZSTD_MAX_CLEVEL); use Compress::Stream::Zstd::Compressor qw(ZSTD_CSTREAM_IN_SIZE); use Compress::Stream::Zstd::Decompressor qw(ZSTD_DSTREAM_IN_SIZE); my ($decompress) = grep { $_ eq '-d' } @ARGV; my ($level) = map { s/^-//; $_ } grep { /^-[0-9]+$/ } @ARGV; $level = 3 if !$level || $level < 1 || $level > ZSTD_MAX_CLEVEL; binmode $_ for (*STDIN, *STDOUT); if ($decompress) { my $decompressor = Compress::Stream::Zstd::Decompressor->new; while (read(*STDIN, my $buffer, ZSTD_DSTREAM_IN_SIZE)) { print STDOUT $decompressor->decompress($buffer); } } else { my $compressor = Compress::Stream::Zstd::Compressor->new($level); while (read(*STDIN, my $buffer, ZSTD_CSTREAM_IN_SIZE)) { print STDOUT $compressor->compress($buffer); } print STDOUT $compressor->end; } __END__