The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/new/perl -w
use strict;
use Config;
use Carp;
use Pod::Links;
use Pod::Find;

$SIG{'INT'} = \&Carp::confess;

use Cwd;            
use Getopt::Std;  
my %opt;
getopts('icdsv',\%opt);
my $here = getcwd();

my @dir;   

sub add_dir
{
 my $dir = shift;
 if (chdir($dir))
  {
   push(@dir,getcwd());
   chdir($here) || die "Cannot cd back to $here:$!";
  }
 else
  {
   warn "Cannot cd to $dir:$!";
  }
}

if (@ARGV)
 {
  foreach my $dir(@ARGV)
   {
    add_dir($dir);
   }
 }
else
 {
  push(@dir,$here);
 }

add_dir($Config{'scriptdirexp'}) if ($opt{'s'});

if ($opt{'i'})
 {        
  foreach my $dir (@INC)
   {
    add_dir($dir);
   }
 }

my @pods = find_pods(@dir);

warn scalar(@pods)." pods found\n";

my $links = new Pod::Links Verbose => $opt{'v'};
foreach my $file (@pods)
 {        
  $links->parse_from_file($file);  
 }
$links->check_links() if $opt{'c'};

if ($opt{'d'})
 {
  require Data::Dumper; 
  my $d = Data::Dumper->new([$links],['$links']);
  print $d->Dumpxs;
 }