in reply to Good package practices

There is a problem with the package declaration in the module. The package name should match the path to the module relative to @INC.

In the script, you have:

use lib "../config"; use webData qw(GetLinks);

In webData.pm, you have:

package MyPackages::Config::webData;

See the difference? One has MyPackages::Config, one doesn't. You have two choices here - change the package declaration or change the 'use' statement:

  1. Change the package statement in the pm to "package webData;". Perl will be able to import the funtion.
  2. Move the module to a directory that matches the package statement and
    use MyPackages::Config::webData qw(GetLinks);
    (ie '../config/MyPackages/Config/webData.pm").