use CPAN(); $CPAN_has_usable = \&CPAN::has_usable; local *CPAN::has_usable = sub { return if $_[1] =~ /^(?:FTP)/; return $CPAN_has_usable->( @_ ); }; print "\nCpan ok\n"; CPAN::shell();