use Archive::Extract;
### build an Archive::Extract object ###
my $ae = Archive::Extract->new( archive => 'foo.tgz' );
### extract to /tmp directory ###
my $ok = $ae->extract( to => '/tmp' )
or die $ae->error;
### get files from the archive ###
my $files = $ae->files;