B
bernd.fischer-krellenberg
I have an issue with File::Find and Archive::Tar
while trying to create a recursive tar file over
a list of files and directories.
Any time when find returns a directory without file
aDir/bDir
it has a problem to add this or to write into the tar
archive
Use of uninitialized value in pack at
/usr/lib/perl5/vendor_perl/5.8.5/Archive/Tar.pm line 1084.
#!/usr/bin/perl -w
use strict;
use File::Find;
use Archive::Tar;
my(
@sources,
$source,
$tar,
@files
);
@sources = ( "aFile", "aDir", "bFile", "cFile", "bDir" )
$tar = Archive::Tar->new( );
foreach $source ( @sources ) {
if( -d $source || -f $source ) {
find( sub { push @files, $File::Find::name }, $source );
}
}
$tar->Archive::Tar->create_archive( 'foo.tar', 1, @files );
$tar->add_files( @files ) or die "$!\n";
$tar->write( 'foo.tar' ) or die "$!\n";
Getting problems with this when find comes to a pure directory
aFile
aDir <- problem
aDir/aFile <- no problem
aDir/bDir <- problem
aDir/bDir/cFile <- no problem
Thanks for your inputs?
while trying to create a recursive tar file over
a list of files and directories.
Any time when find returns a directory without file
aDir/bDir
it has a problem to add this or to write into the tar
archive
Use of uninitialized value in pack at
/usr/lib/perl5/vendor_perl/5.8.5/Archive/Tar.pm line 1084.
#!/usr/bin/perl -w
use strict;
use File::Find;
use Archive::Tar;
my(
@sources,
$source,
$tar,
@files
);
@sources = ( "aFile", "aDir", "bFile", "cFile", "bDir" )
$tar = Archive::Tar->new( );
foreach $source ( @sources ) {
if( -d $source || -f $source ) {
find( sub { push @files, $File::Find::name }, $source );
}
}
$tar->Archive::Tar->create_archive( 'foo.tar', 1, @files );
$tar->add_files( @files ) or die "$!\n";
$tar->write( 'foo.tar' ) or die "$!\n";
Getting problems with this when find comes to a pure directory
aFile
aDir <- problem
aDir/aFile <- no problem
aDir/bDir <- problem
aDir/bDir/cFile <- no problem
Thanks for your inputs?