为什么“constants.pm”工作,但“test.pm”不工作?

时间:2015-03-24 05:03:03

标签: perl variables initialization perl-module subroutine

为什么constants.pmtest.pm没有的地方工作?

constants.pm

package constants;

use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT);

$VERSION     = 1.00;
@ISA         = qw(Exporter);
@EXPORT      = qw(
                  $TESTVAR
                  $ABOUT_PAGE
                  $ADMIN_PAGE
                  $HELP_PAGE
                  $HOME_PAGE
                  $NEWPROWLER_PAGE
                  $PICS_PAGE
                  $PREY_PAGE
                  $PROFILE_PAGE
                  $SEARCH_PAGE
                  $SEXT_PAGE
                  $STATS_PAGE
                  $SUBSCRIPTION_PAGE
                  $TERMS_PAGE

                  $ADMIN_BAN_USER_PAGE
                  $ADMIN_CONFIG_PAGE
                  $ADMIN_EDIT_ABOUT_PAGE
                  $ADMIN_EDIT_HELP_PAGE
                  $ADMIN_EDIT_HOME_PAGE
                  $ADMIN_EDIT_THEMES_PAGE
                  $ADMIN_EDIT_USERS_PAGE

                  $STATS_BIO_PAGE
                  $STATS_DESC_PAGE
                  $STATS_LOC_PAGE
                  $STATS_PASS_PAGE
                  $STATS_SUB_PAGE
                  $STATS_THEME_PAGE
                  $STATS_VITALS_PAGE

                  $SEXT_INBOX_PAGE
                  $SEXT_NEWMSG_PAGE
                  $SEXT_SENT_PAGE
                  $SEXT_SHOWMSG_PAGE
                  $SEXT_TRASH_PAGE

                  $PICS_STD
                  $PICS_UPLOAD_PAGE

                  $END_OF_TIME
                 );

#############
# MAIN PAGES
#############
our $ABOUT_PAGE = "a"; # was about
our $ADMIN_PAGE = "A"; # was admin
our $HELP_PAGE = "h"; # was help
our $HOME_PAGE = "H"; # was ""
our $NEWPROWLER_PAGE = "N"; # was never anything, this is an "oops, forgot this one lol".
our $PICS_PAGE = "i"; # was photos
our $PREY_PAGE = "p"; # was friends
our $PROFILE_PAGE = "P"; # was profile
our $SEARCH_PAGE = "s"; # was search
our $SEXT_PAGE = "m"; # was msgs
our $STATS_PAGE = "S"; # was stats
our $SUBSCRIPTION_PAGE = "M"; # M for Membership, and because "s" and "S" are taken (was sub)
our $TERMS_PAGE  = "t"; # was never anything, another oh i forgot that one, too grr

#############
# ADMIN PAGES
#############
our $ADMIN_BAN_USER_PAGE = "b"; # was bu
our $ADMIN_CONFIG_PAGE = "c"; # was cfg
our $ADMIN_EDIT_ABOUT_PAGE = "a"; # was ab
our $ADMIN_EDIT_HELP_PAGE = "h"; # was ehe
our $ADMIN_EDIT_HOME_PAGE = "H"; # was eho
our $ADMIN_EDIT_THEMES_PAGE = "t"; # was eth
our $ADMIN_EDIT_USERS_PAGE = "u"; # was eu

#############
# USER SETTINGS PAGES
#############
our $STATS_BIO_PAGE = "b";
our $STATS_DESC_PAGE = "d";
our $STATS_LOC_PAGE = "L";
our $STATS_PASS_PAGE = "p";
our $STATS_SUB_PAGE = "s";
our $STATS_THEME_PAGE = "t";
our $STATS_VITALS_PAGE = "v";

#############
# SEXTING PAGES
#############
our $SEXT_INBOX_PAGE = "i";
our $SEXT_NEWMSG_PAGE = "c";
our $SEXT_SENT_PAGE = "s";
our $SEXT_SHOWMSG_PAGE = "S";
our $SEXT_TRASH_PAGE = "t";

#############
# PIC PAGES
#############
our $PICS_STD = "s";
our $PICS_UPLOAD_PAGE = "u";

#############
# MISC CONSTANTS
#############
our $END_OF_TIME = "Thu, 31-Dec-2037 11:59:59";

our $TESTVAR = init_test();

sub init_test {
  return "bugger!";
}

1;

test.pm

package test;

use strict;
use Exporter;
use vars qw($VERSION @ISA @EXPORT);

$VERSION     = 1.00;
@ISA         = qw(Exporter);
@EXPORT      = qw(
                  $TESTVAR
                 );

our $TESTVAR = "a";

1;

现在是test.pl

#!/usr/bin/perl.exe

use strict;
use CGI::Carp qw(fatalsToBrowser);

use constants;

print "content-type: text/plain\n\n";
print $TESTVAR;

exit 1;

use constants;更改为use test;,您将看到我的意思。 constants.pm工作得很好。 test.pm说我在尝试print $TESTVAR时必须明确。我只是不明白。

0 个答案:

没有答案