#!/usr/bin/perl -w # pdgrep use strict; use Getopt::Long; my %opt; GetOptions(\%opt, "i!", "p!") or die "usage!"; my @inc = sort { length $a <=> length $b } grep { $_ ne "." } @INC; for(my $i=$#inc; $i>=0; $i--) {    for(my $j=0; $j<$i; $j++) {    if (index($inc[$i], "$inc[$j]/") == 0) {        splice @inc, $i, 1;        last;    }    } } my @find_cmd = ("find", @inc, "-name", "*.pod", "-exec",        "grep", ($opt{i} ? "-i" : ())); if ($opt{p}) {    push @find_cmd, "-l"; } else {    push @find_cmd, "-A3", "-B3", "-H"; } push @find_cmd, $ARGV[0], "{}", ";"; if ($opt{p}) {    open(my $FIND, "-|", @find_cmd);    local $/ = undef;    my $pods = <$FIND>;    close $FIND;    exec("less", "-p*$ARGV[0]", split(/\n/, $pods)); } else {    exec(@find_cmd); }