Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / i486-linux-gnu-thread-multi / version.pm
1 #!perl -w
2 package version;
3
4 use 5.005_04;
5 use strict;
6
7 use vars qw(@ISA $VERSION $CLASS *declare *qv);
8
9 $VERSION = 0.78;
10
11 $CLASS = 'version';
12
13 eval "use version::vxs $VERSION";
14 if ( $@ ) { # don't have the XS version installed
15     eval "use version::vpp $VERSION"; # don't tempt fate
16     die "$@" if ( $@ );
17     push @ISA, "version::vpp";
18     local $^W;
19     *version::qv = \&version::vpp::qv;
20     *version::declare = \&version::vpp::declare;
21     *version::_VERSION = \&version::vpp::_VERSION;
22     if ($] > 5.009001 && $] <= 5.010000) {
23         no strict 'refs';
24         *{'version::stringify'} = \*version::vpp::stringify;
25         *{'version::(""'} = \*version::vpp::stringify;
26         *{'version::new'} = \*version::vpp::new;
27     }
28 }
29 else { # use XS module
30     push @ISA, "version::vxs";
31     local $^W;
32     *version::declare = \&version::vxs::declare;
33     *version::qv = \&version::vxs::qv;
34     *version::_VERSION = \&version::vxs::_VERSION;
35     if ($] > 5.009001 && $] < 5.010000) {
36         no strict 'refs';
37         *{'version::stringify'} = \*version::vxs::stringify;
38         *{'version::(""'} = \*version::vxs::stringify;
39     }
40     elsif ($] == 5.010000) {
41         no strict 'refs';
42         *{'version::stringify'} = \*version::vxs::stringify;
43         *{'version::(""'} = \*version::vxs::stringify;
44         *version::new = \&version::vxs::new;
45         *version::parse = \&version::vxs::parse;
46     }
47
48 }
49
50 # Preloaded methods go here.
51 sub import {
52     no strict 'refs';
53     my ($class) = shift;
54
55     # Set up any derived class
56     unless ($class eq 'version') {
57         local $^W;
58         *{$class.'::declare'} =  \&version::declare;
59         *{$class.'::qv'} = \&version::qv;
60     }
61
62     my %args;
63     if (@_) { # any remaining terms are arguments
64         map { $args{$_} = 1 } @_
65     }
66     else { # no parameters at all on use line
67         %args = 
68         (
69             qv => 1,
70             'UNIVERSAL::VERSION' => 1,
71         );
72     }
73
74     my $callpkg = caller();
75     
76     if (exists($args{declare})) {
77         *{$callpkg."::declare"} = 
78             sub {return $class->declare(shift) }
79           unless defined(&{$callpkg.'::declare'});
80     }
81
82     if (exists($args{qv})) {
83         *{$callpkg."::qv"} =
84             sub {return $class->qv(shift) }
85           unless defined(&{"$callpkg\::qv"});
86     }
87
88     if (exists($args{'UNIVERSAL::VERSION'})) {
89         local $^W;
90         *UNIVERSAL::VERSION 
91                 = \&version::_VERSION;
92     }
93
94     if (exists($args{'VERSION'})) {
95         *{$callpkg."::VERSION"} = \&version::_VERSION;
96     }
97 }
98
99 1;