#!/usr/bin/env perl use strict; use warnings; use File::Find; my @d; my %out; my $lasttime = 0; push @d, "$ENV{'HOME'}/Maildir/"; find(\&w, @d); if (0 < keys %out) { for my $i (keys %out) { if ($out{$i} lt 0) {next;} print "$out{$i} new msg"; if ($out{$i} gt 1) {print "s";} print " in $i\n"; } printf "Last msg: %s\n", scalar localtime $lasttime; } else {print "No new messages.\n";} exit 0; sub w { if (-e && $File::Find::name =~ "/new/") { $lasttime = &max($lasttime, (stat(_))[9]); $out{"$File::Find::dir"}++; } } sub max { #taken from my $max = shift(@_); foreach my $foo (@_) { $max = $foo if $max < $foo; } return $max; } __END__