tarファイルの一覧


 Archive::Tarモジュールを使います。
use strict;
use warnings;

use Archive::Tar;
use POSIX 'strftime';

my $tar_file = 'test.tar'; # tarファイル名

my $ar = Archive::Tar->new;
$ar->read($tar_file) or die; # ファイル読み込み

# ファイル一覧の表示
my @files = $ar->get_files();
foreach my $file (@files) {
	printf "%o %s/%s %7d %s %s\n",
		$file->{mode},
		$file->{uname},
		$file->{gname},
		$file->{size},
		strftime('%Y-%m-%d %H:%M:%S', localtime $file->{mtime}),
		$file->{name};
}
 上記のget_files()ではファイルの中身まで取得します。特定の項目だけ取得する場合は以下のようにlist_files()でも取得できます。
# ファイル一覧の表示
my @files = $ar->list_files([qw(name size mtime mode uname gname)]);
foreach my $file (@files) {
	printf "%o %s/%s %7d %s %s\n",
		$file->{mode},
		$file->{uname},
		$file->{gname},
		$file->{size},
		strftime('%Y-%m-%d %H:%M:%S', localtime $file->{mtime}),
		$file->{name};
}

関連項目

tarファイルの作成
tarファイルの展開
tar.gzファイルの展開
zipファイルの一覧