#!/usr/bin/env perl # pmpath -- show path to a perl module # tchrist@perl.com BEGIN { $^W = 1 } $errors = 0; for $module (@ARGV) { eval "local \$^W = 0; require $module"; if ($@) { $@ =~ s/at \(eval.*$//; warn "$0: $@"; $errors++; next; } for ($shortpath = $module) { s{::}{/}g; s/$/.pm/; } # print "$module is in " if @ARGV > 1; if (defined($fullpath = $INC{$shortpath})) { print "$fullpath\n"; } else { $errors++; warn "$0: path unavailable in %INC\n"; } } exit ($errors != 0); __END__ =head1 NAME pmpath - show full path to a perl module =head1 SYNOPSIS pmpath module ... =head1 DESCRIPTION For each module name given as an argument, produces its full path on the standard output, one per line. =head1 EXAMPLES $ pmpath CGI /usr/local/devperl/lib/5.00554/CGI.pm $ filsperl -S pmpath IO::Socket CGI::Carp /usr/local/filsperl/lib/5.00554/i686-linux-thread/IO/Socket.pm /usr/local/filsperl/lib/5.00554/CGI/Carp.pm $ oldperl -S pmpath CGI CGI::Imagemap /usr/lib/perl5/CGI.pm /usr/lib/perl5/site_perl/CGI/Imagemap.pm =head1 SEE ALSO pmdesc(1), pmvers(1), pmcat(1). =head1 AUTHORS and COPYRIGHTS Copyright (C) 1999 Tom Christiansen. Copyright (C) 2006-2008 Mark Leighton Fisher. This is free software; you can redistribute it and/or modify it under the terms of either: (a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or (b) the Perl "Artistic License". (This is the Perl 5 licensing scheme.) Please note this is a change from the original pmtools-1.00 (still available on CPAN), as pmtools-1.00 were licensed only under the Perl "Artistic License".