Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Encode;
- sub find_exts {
- my ($start_dir, $exts) = @_;
- $start_dir =~ s|/+$||;
- my $dirh;
- my @subdirs;
- opendir $dirh, $start_dir;
- while (my $de = decode_utf8 readdir $dirh) {
- if (-d $de && $de ne '.' && $de ne '..') {
- push @subdirs, "$start_dir/$de";
- next;
- }
- if (-f $de) {
- my ($ext) = $de =~ /.\.([^.]*)$/;
- $ext //= '';
- $exts->{$ext}++;
- }
- }
- find_exts(pop @subdirs, $exts) while @subdirs;
- closedir $dirh;
- return $exts;
- }
- my $exts = find_exts('.', {});
- printf("%5d %10s\n", $exts->{$_}, $_) for sort keys %$exts;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement