#!/usr/bin/perl -w
use strict;
use warnings;

die "usage: $0 directory\n" if (@ARGV == 0);
die "$ARGV[0] is not a directory\n" unless -d $ARGV[0];

my @files;
my @dirs;
my $count;

push @dirs,$ARGV[0];

while(@dirs) {
	my $dir = shift(@dirs);
	print STDERR ".";
	next unless opendir DIR,$dir;

	foreach (readdir(DIR)) {
		if (-f "$dir/$_") {
			push @files,"$dir/$_";
		} elsif (-d _) {
			push @dirs,"$dir/$_" unless /^\.\.?$/;
		}
	}
	close DIR;
}
print STDERR "\n";

undef $/;
foreach (@files) {
	open F,"<$_" or die "\n$_: $!";
	my $f = <F>;
	close F;
	$count++;
	print STDERR $count . "\b" x length($count);
}
