#!/usr/bin/perl use strict; use warnings; (@ARGV == 1 and -d $ARGV[0]) or die "Usage: $0 pathname\n"; my $dir = shift; opendir( DIR, $dir ) or die "$dir: $!"; while ( $_ = readdir DIR ) { next if ( /^\.\.?$/ ); print join( " ", map { sprintf( " %02x", ord($_)) } split //, $_ ); if ( -f ) { open( I, $_ ) or do { warn "$_: $!"; next }; my $sum = 0; $sum += length() while (); close I; printf( " : %d bytes (%d read)\n", -s _, $sum ); } elsif ( -d _ ) { print " : directory\n"; } else { print " : not sure what this is\n" } }