Author image Adriano Ferreira
and 1 contributors


Compress::unLZMA - Interface to LZMA decompression library


  use Compress::unLZMA qw(uncompress uncompressfile);
  my $data = uncompressfile('foo.lzma');
  my $data = uncompress($content);


LZMA is default and general compression method of 7z format in 7-Zip program. LZMA provides high compression ratio and very fast decompression.

This module is based on the LZMA SDK which provides a cross-platform implementation of the LZMA decompression algorithm in ANSI C.

From SDK lzma.txt file:

  LZMA decompression code was ported from original C++ sources to C.
  Also it was simplified and optimized for code size.
  But it is fully compatible with LZMA from 7-Zip.


$data = uncompress($content)

Uncompress $data. if successful, it returns the uncompressed data. Otherwise it returns undef and $@ contains the error message.

The source buffer can be either be a scalar or a scalar reference.

$data = uncompressfile($file)

Uncompress the file $file. if successful, it returns the uncompressed data. Otherwise it returns undef and $@ contains the error message.


This version only implements in-memory decompression (patches are welcomed).

There is no way to recognize a valid LZMA encoded file with the SDK. So, in some cases, you can crash your script if you try to uncompress a non valid LZMA encoded file.


Please report any requests, suggestions or bugs via the RT bug-tracking system at or email to bug-Compress-unLZMA\ is the RT queue for Compress::unLZMA. Please check to see if your bug has already been reported.


Adriano Ferreira,


Copyright 2004

Fabien Potencier,

This software may be freely copied and distributed under the same terms and conditions as Perl.


LZMA SDK 4.01 Copyright (C) 1999-2004 Igor Pavlov 2004-02-15

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

LZMA SDK also can be available under a proprietary license for those who cannot use the GNU LGPL in their code. To request such proprietary license or any additional consultations, write to