bwt_string.pl 608 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/perl
  2. # Bzip2-like compressor/decompressor, for compressing a given string.
  3. use 5.036;
  4. use lib qw(../lib);
  5. use Compression::Util qw(:all);
  6. local $Compression::Util::VERBOSE = 0;
  7. foreach my $file (__FILE__, $^X) {
  8. say "Compressing: $file";
  9. my $str = do {
  10. local $/;
  11. open my $fh, '<:raw', $file;
  12. <$fh>;
  13. };
  14. my $enc = bwt_compress($str);
  15. my $dec = bwt_decompress($enc);
  16. say "Original size : ", length($str);
  17. say "Compressed size: ", length($enc);
  18. if ($str ne $dec) {
  19. die "Decompression error";
  20. }
  21. say '';
  22. }