commit for archiving
This commit is contained in:
28
Perl/bin/crc32
Normal file
28
Perl/bin/crc32
Normal file
@@ -0,0 +1,28 @@
|
||||
#! /usr/bin/perl -w
|
||||
# computes and prints to stdout the CRC-32 values of the given files
|
||||
use lib qw( blib/lib lib );
|
||||
use Archive::Zip;
|
||||
use FileHandle;
|
||||
|
||||
my $totalFiles = scalar(@ARGV);
|
||||
foreach my $file (@ARGV) {
|
||||
if ( -d $file ) {
|
||||
warn "$0: ${file}: Is a directory\n";
|
||||
next;
|
||||
}
|
||||
my $fh = FileHandle->new();
|
||||
if ( !$fh->open( $file, 'r' ) ) {
|
||||
warn "$0: $!\n";
|
||||
next;
|
||||
}
|
||||
binmode($fh);
|
||||
my $buffer;
|
||||
my $bytesRead;
|
||||
my $crc = 0;
|
||||
while ( $bytesRead = $fh->read( $buffer, 32768 ) ) {
|
||||
$crc = Archive::Zip::computeCRC32( $buffer, $crc );
|
||||
}
|
||||
printf( "%08x", $crc );
|
||||
print("\t$file") if ( $totalFiles > 1 );
|
||||
print("\n");
|
||||
}
|
||||
Reference in New Issue
Block a user