m#^(?!-\s)$# #### m#^(-\s)$# #### use strict; use warnings; sub usage { die < For example: $0 /usr/bin END } my $path = shift or usage(); -r -x -d $path or usage(); chdir $path or die $!; my @whatis; print "wait a little...\n"; for (`whatis --wildcard * 2>/dev/null`) { chomp; push @whatis, [ split /\s+-\s+/, $_ ]; } print "(control-d to exit)\n\n"; MAINLOOP: while (1) { for (@whatis) { print $_->[0]; defined or last MAINLOOP; print "\t", $_->[1], "\n\n"; } } print "\n";