Archive-Lha
view release on metacpan or search on metacpan
_header_date($header),
_header_time($header),
_display_name($header);
printf ": %s\n", $header->{comment} if $header->{comment};
}
print "-------- ------- ----- --------- --------\n";
printf "%8d %7d%5.1f%% %s %s %s\n",
$totals->{original_size},
$totals->{encoded_size},
(($totals->{encoded_size} && $totals->{original_size}) ? 100 * ($totals->{original_size} - $totals->{encoded_size}) / $totals->{original_size} : 0),
strftime("%d-%b-%y", localtime((stat($fname))[9])),
strftime("%T", localtime((stat($fname))[9])),
(sprintf(" %d files", $totals->{count}));
},
vv => sub {
my $fname = shift or usage();
my $stream = open_archive($fname);
my $totals = { original_size => 0, encoded_size => 0, count => 0 };
print "Original Packed Ratio Date Time Atts Method CRC L OS\n";
print "-------- ------- ----- --------- -------- -------- ------ ---- -----\n";
while ( defined( my $level = $stream->search_header ) ) {
my $header = Archive::Lha::Header->new(
$header->{crc16},
$hdr_level,
$os_char;
printf ": %s\n", $header->{comment} if $header->{comment};
}
print "-------- ------- ----- --------- --------\n";
printf "%8d %7d%5.1f%% %s %s %s\n",
$totals->{original_size},
$totals->{encoded_size},
(($totals->{encoded_size} && $totals->{original_size}) ? 100 * ($totals->{original_size} - $totals->{encoded_size}) / $totals->{original_size} : 0),
strftime("%d-%b-%y", localtime((stat($fname))[9])),
strftime("%T", localtime((stat($fname))[9])),
(sprintf(" %d files", $totals->{count}));
},
t => sub {
my $fname = shift or usage();
printf "Testing integrity of archive '%s':\n", $fname;
my $stream = open_archive($fname);
my $totals = { original_size => 0, encoded_size => 0, count => 0 };
while ( defined( my $level = $stream->search_header ) ) {
my $header = Archive::Lha::Header->new(
level => $level,
}
if ($mode eq 'lv') {
printf "---------- ----------- ------- ------- ------ ---------- ------------ -------------\n";
} else {
printf "---------- ----------- ------- ------ ------------ --------------------\n";
}
my $ratio = $totals->{original_size}
? unpack('f', pack('f', 100 * $totals->{encoded_size} / $totals->{original_size})) : 100;
my $stamp = _ls_stamp((stat($fname))[9]);
# PERMSSN (10) + sep (1) + UID/GID (11) + sep (1) = 23 chars for prefix
# " Total " (PERMSSN 10) + " " (sep) + "%5d files" (UID/GID 11) + " " (sep) = 23
my $file_str = $totals->{count} == 1 ? 'file ' : 'files';
my $prefix = " Total " . sprintf(" %5d %s ", $totals->{count}, $file_str);
if ($mode eq 'lv') {
printf "%s%7d %7d %5.1f%% %s\n",
$prefix,
$totals->{encoded_size},
( run in 0.494 second using v1.01-cache-2.11-cpan-4ac696b4eb4 )