anu7 has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Archive Tar
by Fletch (Bishop) on May 17, 2007 at 15:04 UTC

    Quite probably because @filename is going to be empty since the glob operator isn't going to produce anything unless files of matching names already exist in the current working directory. Of course one might have used the debugger and/or some diagnostic print statements before posting to determine this for themselves.

    A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Archive Tar
by graff (Chancellor) on May 17, 2007 at 15:24 UTC
    Did you find the review of Archive::Tar that I mentioned to you in a previous thread? Did you try to read the Archive::Tar manual? If you didn't, you really should -- and as Fletch suggests, you should do some more diagnostics and debugging on your own -- before posting on this topic again.

    Here's an adapted version of code you can find in the afore-mentioned review article, using some of the info from your code snippet:

    use Archive::Tar; my $tar = Archive::Tar->new( "test.tar" ); # get a list of Archive::Tar::File objects whose file names match "lr3 +*": my @files = grep { $_->name =~ /^lr3/ } $tar->get_files; for my $file ( @files ) { $tar->extract_file( $file ); # this method works on A::T::F objec +ts }
    UPDATE: If the code snippet above does not work for you, it's probably because your test.tar file has the "lr3*" files inside a directory, and maybe the regex in the grep statement should be:  m{/lr3} instead of  /^lr3/.