/usr/share/perl5/Date/Manip/Obj.pod is in libdate-manip-perl 6.25-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 | # Copyright (c) 2008-2011 Sullivan Beck. All rights reserved.
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
=pod
=head1 NAME
Date::Manip::Obj - Base class for Date::Manip objects
=head1 SYNOPSIS
The Date::Manip::Obj class is the base class used for the following
Date::Manip classes:
Date::Manip::Base
Date::Manip::TZ
Date::Manip::Date
Date::Manip::Delta
Date::Manip::Recur
This module is not intended to be called directly and performs no
useful function by itself. Instead, use the various derived classes
which inherit from it.
=head1 DESCRIPTION
This module contains a set of methods used by all Date::Manip classes
listed above.
You should be familiar with the Date::Manip::Objects and
Date::Manip::Config documentation.
In the method descriptions below, Date::Manip::Date objects will
usually be used as examples, but (unless otherwise stated), all of the
classes listed above have the same methods, and work in the same
fashion.
=head1 METHODS FOR CREATING OBJECTS
In the examples below, any $date ($date, $date1, $date2, ...) variable
is a Date::Manip::Date object. Similarly, $delta, $recur, $tz, and
$base refer to objects in the appropriate class.
Any $obj variable refers to an object in any of the classes.
=over 4
=item B<new>
There are two ways to use the new method. They are:
$obj2 = new CLASS ($obj1,$string,\@opts);
$obj2 = $obj1->new($string,\@opts)
In both cases, all arguments are optional.
Here, CLASS is the class of the new object. For example:
$date = new Date::Manip::Date;
$delta = new Date::Manip::Delta;
if $obj1 is available, the new object will share as much information
from the old object as possible. The class of the new object may
be derived from the old object as well.
For example, if you call either of these:
$date2 = new Date::Manip::Date $date1;
$date2 = $date1->new();
the new date object will use the same embedded Date::Manip::TZ object. In
the second case, the class of the new object ($date2) is Date::Manip::Date
because that is the class of the original object.
When specifying CLASS and including an old object, objects do not need to
be of the same class. For example, the following are all valid:
$date = new Date::Manip::Date $delta;
$date = new Date::Manip::Date $tz;
You can even do:
$date = new Date::Manip::Date $base;
but this will have to create a completely new Date::Manip::TZ object,
which means that optimal performance may not be achieved if a
Date::Manip::TZ object already exists.
There are two special cases. Either of the following will create
a new Date::Manip::Base object for handling multiple configurations:
$base2 = new Date::Manip::Base $base1;
$base2 = $base1->new();
Either of the following will create a new Date::Manip::TZ object with
the same Date::Manip::Base object embedded in it:
$tz2 = new Date::Manip::TZ $tz1;
$tz2 = $tz1->new();
The new base object will initially have the same configuration as the
original base object, but changing it's configuration will not
affect the original base object.
If the \@opts argument is passed in, it is a list reference containing
a list suitable for passing to the config method (described below). In
this case, a new Date::Manip::Base object (and perhaps Date::Manip::TZ
object) will be created. The new Base object will start as identical
to the original one (if a previously defined object was used to create
the new object) with the additional options in @opts added.
In other words, the following are equivalent:
$date = new Date::Manip::Date $obj,\@opts;
$base = $obj->base();
$base2 = $base->new();
$date = new Date::Manip::Date $base2;
$date->config(@opts);
It should be noted that the options are applied to the NEW object,
not the old one. That only matters in one situation:
$base2 = new Date::Manip::Base $base1,\@opts;
$base2 = $base1->new(\@opts);
An optional string ($string) may be passed in only when creating
a Date::Manip::Date, Date::Manip::Delta, or Date::Manip::Recur object.
If it is passed in when creating a Date::Manip::TZ or Date::Manip::Base
object, a warning will be issued, but execution will continue.
If the string is included, it will be parsed to give an initial value
to the object. This will only be done AFTER any options are handled,
so the following are equivalent:
$date = new Date::Manip::Date $string,\@opts;
$date = new Date::Manip::Date;
$date->config(@opts);
$date->parse($string);
Note that it is generally not a good idea to pass in $string since all
of the parse methods allow (but do not require) additional arguments, and
this ability is not supported when passing in $string to the new method.
As a result, it's generally a better practice to call the parse method
separately.
Once a Date::Manip::Date object (or any object in any other
Date::Manip class) is created, it should always be used to create
additional objects in order to preserve cached data for optimal
performance and memory usage.
The one caveat is if you are working with multiple configurations
as described in the Date::Manip::Objects document. In that case,
you may need to create completely new objects to allow multiple
Date::Manip::Base objects to be used.
=item B<new_config>
$obj2 = $obj1->new_config($string,\@opts);
This creates a new instance with a new Date::Manip::Base object (and possibly
a new Date::Manip::TZ object).
For example,
$date2 = $date1->new_config();
creates a new Date::Manip::Date object with a new Date::Manip::TZ (and
Date::Manip::Base) object. Initially, it is the same configuration as
the original object.
If the object is a Date::Manip::Base object, the following are equivalent:
$base2 = $base1->new_config();
$base2 = $base1->new();
Both $string and \@opts are optional. They are used in the same way they
are used in the new method.
=item B<new_date>
=item B<new_delta>
=item B<new_recur>
These are shortcuts for specifying the class. The following sets of
calls are all equivalent:
$date = $obj->new_date();
$date = new Date::Manip::Date($obj);
$delta = $obj->new_delta();
$delta = new Date::Manip::Date($obj);
These methods all allow optional ($string,\@opts) arguments.
=back
=head1 OTHER METHODS
=over 4
=item B<base>
=item B<tz>
$base = $obj->base();
This returns the Date::Manip::Base object associated with the
given object.
If $obj is a Date::Manip::Base object, nothing is returned (i.e. it doesn't
create a new copy of the object).
$tz = $obj->tz();
This returns the Date::Manip::TZ object associated with the
given object. If $obj is a Date::Manip::TZ or Date::Manip::Base object,
nothing is returned.
=item B<config>
$obj->config($var1,$val1,$var2,$val2,...);
This will set the value of any configuration variables. Please refer to the
Date::Manip::Config manual for a list of all configuration variables and their
description.
=item B<err>
$err = $obj->err();
This will return the full error message if the previous operation failed
for any reason.
$obj->err(1);
will clear the error code.
=item B<is_date>
=item B<is_delta>
=item B<is_recur>
$flag = $obj->is_date();
Returns 0 or 1, depending on the object. For example, a Date::Manip::Date
object returns 1 with the is_date method, and 0 for the other two.
=item B<version>
$vers = $obj->version($flag);
This returns the version of Date::Manip.
If $flag is passed in, and $obj is not a Date::Manip::Base object, the
version and timezone information will be passed back.
=back
=head1 KNOWN BUGS
None known.
=head1 BUGS AND QUESTIONS
Please refer to the Date::Manip::Problems documentation for
information on submitting bug reports or questions to the author.
=head1 SEE ALSO
Date::Manip - main module documentation
=head1 LICENSE
This script is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=head1 AUTHOR
Sullivan Beck (sbeck@cpan.org)
=cut
|