: eval 'exec perl -w -S `echo $0 | sed "s/.*\///" ` ${1+"$@"}' if 0; @a=@ARGV; @flags=grep(/^-/,@a); @files=grep(-f,@a); @ARGV=@files; @other=(); @other=grep(!-d,grep(!-f,grep(!/^-/,@a))); @dirs=(); @dirs=grep(-d,@a); if ( grep( /^-h(elp)?$/,@flags) or ( @other != 1 ) ) { $scriptName = $0; $scriptName =~ s%^.*/%%; print <<"END"; Usage: $scriptName [-h -help] [-c] [-p] com.java.package Echo the directory in your CLASSPATH that contains the specified java package. Use flag -c to search CDPATH instead. Use flag -p to search PATH instead. END exit;} if (grep(/-c/,@flags)) { $PATH = $ENV{'CDPATH'}; } elsif (grep(/-p/,@flags)) { $PATH = $ENV{'PATH'}; } else { $PATH = $ENV{'CLASSPATH'}; } @PATH = split /:/,$PATH; $PWD = `pwd`; chomp $PWD; $package = $other[0]; $package =~ s:\.:/:g; foreach $p (@PATH) { &mychdir($PWD); $p =~ s:/$::; $p =~ s:~:$ENV{'HOME'}:; if ( -d "$p" ) { &mychdir($p); if ( -d "$package") { print "$p/$package\n"; exit; } } } sub mychdir{chdir($_[0]) or die "Cannot change to directory '$_[0]'";}