http://qs1969.pair.com?node_id=131438

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Too many modules
by kwoff (Friar) on Dec 13, 2001 at 02:31 UTC
    I think the module requires perl 5.6, whereas you are using an earlier version. 'our' was introduced in 5.6.
      And for the benefit of others, a well-written module that makes use of version-specific language elements should probably declare this in their module:
      require 5.6.0;
      This makes tracking down these types of problems a lot easier.
      And to fix the line, if upgrading to perl 5.6.1 is an issue, you can change this:
      our(@ISA, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD) = ();
      to this:
      use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK $AUTOLOAD);
      or this:
      no strict; (@ISA, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD) = (); # You need to do all of your work with these variables here # Its best not to use this method. use strict;

      Update:Fixed examples, thanks to reply from tye.

        Minor issue: the second line of your first example is not needed as it just sets those variables to have the same values that they already had.

        Major issue: You might as well delete all three lines of your last example as it does nearly nothing and none of the minor things that it does do have any use that I can see. The first example allows you to make use of the declared variables further down in the file. That is what you want. You last example doesn't do that. If you used your last example then you'd get errors in the code further down in the file that made use of those variables (and if there is no code further down that makes use of those variables, then you might as well drop them from the declaration).

                - tye (but my friends call me "Tye")