The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Package::Transporter::Generator::Potential::Suggested_Use - Issue the right 'use MODULE' to get the missing subroutine

SYNOPSIS

        use Package::Transporter sub{eval shift}, sub {
                $_[0]->register_potential('::Suggested_Use', 'FOR_SELF');
        };
        
        sub yn($) { print STDERR ($_[0] ? 'Yes' : 'No'), "\n"; };
        yn(!defined(&anything));
        yn(potentially_defined('anything')); # dangerous!
        
        print STDOUT uri_escape('Hello World.'), "\n";
        
        my $uri_base = bless(\(my $o = 'www.perl.org'), 'main');
        $uri_base->scheme('http');
        print STDOUT "URI: $$uri_base\n";
        
        confess('Bye World.');
                
        exit(0);

DESCRIPTION

Issues an 'use MODULE;' or 'use parent qw(MODULE);' if a subroutine is requested from it. Example: Issues 'use URI::Escape' if the subroutine 'uri_escape' is requested. Configurable. Default values in the data section of Suggested_Use::Suggestions. * means any and '' means empty type.

Configure the generator by creating it manually and passing a manually created object of the class Package::Transporter::Generator::Potential::Suggested_Use::Suggestions to it.

Default Suggestions

TYPE is the string OBJECT for a non-empty value of blessed($_[0]) and the return value of ref($_[0]) otherwise. ARGC is the argument count.

        __DATA__
        #NAME           TYPE    ARGC    MODULE
        confess         ''      *       Carp
        croak           *       *       Carp
        uri_escape      *       *       URI::Escape
        uri_unescape    *       *       URI::Escape
        each_array      *       *       List::MoreUtils
        each_arrayref   *       *       List::MoreUtils
        julian_day      *       *       Time::Piece
        soundex_noxs    *       *       Text::Soundex
        soundex_nara    *       *       Text::Soundex
        soundex_unicode *       *       Text::Soundex
        soundex_nara_unicode    *       *       Text::Soundex
        pack_U          *       *       Unicode::Normalize
        h1              *       *       CGI
        start_html      *       *       CGI
        Dumper          *       *       Data::Dumper
        cartesian_to_spherical  *       *       Math::Trig
        ping_icmp       *       *       Net::Ping

ANYTHING ELSE

Please see the documentation of the upstream package Package::Transporter.