| Compress-LZO documentation | Contained in the Compress-LZO distribution. |
Compress::LZO - Interface to the LZO compression library
use Compress::LZO;
$dest = Compress::LZO::compress($source, [$level]);
$dest = Compress::LZO::decompress($source);
$dest = Compress::LZO::optimize($source);
$crc = Compress::LZO::adler32($buffer [,$crc]);
$crc = Compress::LZO::crc32($buffer [,$crc]);
LZO_VERSION, LZO_VERSION_STRING, LZO_VERSION_DATE
The Compress::LZO module provides a Perl interface to the LZO compression library (see AUTHOR for details about where to get LZO). A relevant subset of the functionality provided by LZO is available in Compress::LZO.
All string parameters can either be a scalar or a scalar reference.
$dest = Compress::LZO::compress($string)
Compress a string using the default compression level, returning a string containing compressed data.
$dest = Compress::LZO::compress($string, $level)
Compress string, using the chosen compression level (either 1 or 9). Return a string containing the compressed data.
If the string is not compressible, undef is returned.
$dest = Compress::LZO::decompress($string)
Decompress the data in string, returning a string containing the decompressed data.
On error (in case of corrupted data) undef is returned.
$dest = Compress::LZO::optimize($string)
Optimize the representation of the compressed data, returning a string containing the compressed data.
On error undef is returned.
Two functions are provided by LZO to calculate a checksum. For the Perl interface the order of the two parameters in both functions has been reversed. This allows both running checksums and one off calculations to be done.
$crc = Compress::LZO::adler32($string [,$initialAdler]);
$crc = Compress::LZO::crc32($string [,$initialCrc]);
The Compress::LZO module was written by Markus F.X.J. Oberhumer markus@oberhumer.com. The latest copy of the module should also be found on CPAN in modules/by-module/Compress/Compress-LZO-x.y.tar.gz.
The LZO compression library was written by Markus F.X.J. Oberhumer markus@oberhumer.com. It is available from the LZO home page at http://www.oberhumer.com/opensource/lzo/.
The LZO library and algorithms are Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 by Markus Franz Xaver Johannes Oberhumer markus@oberhumer.com. All Rights Reserved.
1.08 2002-08-29 Updated for Perl 5.8.0.
1.00 1998-08-22 First public release of Compress::LZO.
| Compress-LZO documentation | Contained in the Compress-LZO distribution. |
# LZO.pm -- Perl bindings for the LZO data compression library # # This file is part of the LZO real-time data compression library. # # Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer # All Rights Reserved. # # The LZO library is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # The LZO library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with the LZO library; see the file COPYING. # If not, write to the Free Software Foundation, Inc., # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # Markus F.X.J. Oberhumer # <markus@oberhumer.com> # http://www.oberhumer.com/opensource/lzo/ package Compress::LZO; $VERSION = "1.08"; require 5.003_05; require Exporter; require DynaLoader; use AutoLoader; use Carp; use strict; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); @ISA = qw(Exporter DynaLoader); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @EXPORT = qw( LZO_VERSION LZO_VERSION_STRING LZO_VERSION_DATE ); @EXPORT_OK = qw( compress decompress optimize adler32 crc32 LZO_VERSION LZO_VERSION_STRING LZO_VERSION_DATE ); sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. If a constant is not found then control is passed # to the AUTOLOAD in AutoLoader. my($constname); ($constname = $AUTOLOAD) =~ s/.*:://; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { croak "Compress::LZO macro $constname not defined"; } } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; } bootstrap Compress::LZO $VERSION; # Preloaded methods go here. 1; # Autoload methods go after __END__, and are processed by the autosplit program. 1; __END__