in reply to Re: Using Multiple Modules
in thread Using Multiple Modules

Everytime I've tried to use them directly I haven't been successful. The code compiles but stops when it gets to the first subroutine

Replies are listed 'Best First'.
Re^3: Using Multiple Modules
by choroba (Cardinal) on Jan 22, 2016 at 08:55 UTC
    How does the .pm export its subroutines? If it uses Exporter, you need to run
    require CodesModule; 'CodesModule'->import;

    Or you might even need to name the subroutines as the import's parameters if the module doesn't use @EXPORT but @EXPORT_OK.

    Update: if you switched to

    use CodesModule;

    you need to name the subs for @EXPORT_OK in this way:

    use CodesModule qw{ func1 func2 };
    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,

      Thank you so much for your help. In my code I use .pm this way:

       use runner_libs::CodesModule qw(exit_gracefully subprogram_runner warning_or_failure open_or_fail error_display cal_time start_time end_time trim CheckError);

      And the .pm exports this way:

      package CodesModule; use Exporter 'import'; @EXPORT_OK = qw(exit_gracefully subprogram_runner warning_or_failure o +pen_or_fail error_display cal_time start_time end_time trim CheckErro +r);
        What's runner_libs::CodesModule? Make sure the package name is the same in the use statement, in the package declaration, and that it corresponds to the path to the .pm file in one of the libs, as shown above.
        ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,