为什么constants.pm
在test.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
时必须明确。我只是不明白。