]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/DBase.pm
[project @ 2000-03-18 01:40:03 by gecko]
[debbugs.git] / Debbugs / DBase.pm
diff --git a/Debbugs/DBase.pm b/Debbugs/DBase.pm
new file mode 100644 (file)
index 0000000..2892f11
--- /dev/null
@@ -0,0 +1,57 @@
+package Debvote::Rank;  # assumes Some/Module.pm
+
+use strict;
+
+BEGIN {
+       use Exporter   ();
+       use vars       qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+
+       # set the version for version checking
+       $VERSION     = 1.00;
+
+       @ISA         = qw(Exporter);
+       @EXPORT      = qw(&func1 &func2 &func4);
+       %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
+
+       # your exported package globals go here,
+       # as well as any optionally exported functions
+       @EXPORT_OK   = qw($Var1 %Hashit &func3);
+}
+
+use vars      @EXPORT_OK;
+
+# non-exported package globals go here
+use vars      qw(@more $stuff);
+
+# initialize package globals, first exported ones
+$Var1   = '';
+%Hashit = ();
+
+# then the others (which are still accessible as
+# $Some::Module::stuff)
+$stuff  = '';
+@more   = ();
+
+# all file-scoped lexicals must be created before
+# the functions below that use them.
+
+# file-private lexicals go here
+my $priv_var    = '';
+my %secret_hash = ();
+
+# here's a file-private function as a closure,
+# callable as &$priv_func;  it cannot be prototyped.
+my $priv_func = sub {
+# stuff goes here.
+};
+
+# make all your functions, whether exported or not;
+# remember to put something interesting in the {} stubs
+sub func1      {}    # no prototype
+sub func2()    {}    # proto'd void
+sub func3($$)  {}    # proto'd to 2 scalars
+
+# this one isn't exported, but could be called!
+sub func4(\%)  {}    # proto'd to 1 hash ref
+
+END { }       # module clean-up code here (global destructor)