#!/usr/bin/perl use warnings; use strict; use Archive::Tar; use Data::Dumper; my $cdr_dir="/root/prac/NSN_SGSN"; my @cdr_list=`ls $cdr_dir/*tar.gz`; print Dumper \@cdr_list; foreach my $file (@cdr_list) { chomp $file; my $pipecmd = "tar -xvf $file"; #open my $fh, q{<}, qq{tar xzOF $file | } or die $!; open(my $PIPEIN, '-|', $pipecmd) or die "Opening pipe [$pipecmd]: $!\n"; while ( my $line = <$PIPEIN> ) { print $line; } close $PIPEIN; }