home *** CD-ROM | disk | FTP | other *** search
- package Time::gmtime;
- use strict;
- use Time::tm;
-
- use 5.005_64;
- our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
- BEGIN {
- use Exporter ();
- @ISA = qw(Exporter Time::tm);
- @EXPORT = qw(gmtime gmctime);
- @EXPORT_OK = qw(
- $tm_sec $tm_min $tm_hour $tm_mday
- $tm_mon $tm_year $tm_wday $tm_yday
- $tm_isdst
- );
- %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
- $VERSION = 1.01;
- }
- use vars @EXPORT_OK;
-
- sub populate (@) {
- return unless @_;
- my $tmob = Time::tm->new();
- @$tmob = (
- $tm_sec, $tm_min, $tm_hour, $tm_mday,
- $tm_mon, $tm_year, $tm_wday, $tm_yday,
- $tm_isdst )
- = @_;
- return $tmob;
- }
-
- sub gmtime (;$) { populate CORE::gmtime(@_ ? shift : time)}
- sub gmctime (;$) { scalar CORE::gmtime(@_ ? shift : time)}
-
- 1;
- __END__
-
- =head1 NAME
-
- Time::gmtime - by-name interface to Perl's built-in gmtime() function
-
- =head1 SYNOPSIS
-
- use Time::gmtime;
- $gm = gmtime();
- printf "The day in Greenwich is %s\n",
- (qw(Sun Mon Tue Wed Thu Fri Sat Sun))[ gm->wday() ];
-
- use Time::gmtime w(:FIELDS;
- printf "The day in Greenwich is %s\n",
- (qw(Sun Mon Tue Wed Thu Fri Sat Sun))[ gm_wday() ];
-
- $now = gmctime();
-
- use Time::gmtime;
- use File::stat;
- $date_string = gmctime(stat($file)->mtime);
-
- =head1 DESCRIPTION
-
- This module's default exports override the core gmtime() function,
- replacing it with a version that returns "Time::tm" objects.
- This object has methods that return the similarly named structure field
- name from the C's tm structure from F<time.h>; namely sec, min, hour,
- mday, mon, year, wday, yday, and isdst.
-
- You may also import all the structure fields directly into your namespace
- as regular variables using the :FIELDS import tag. (Note that this
- still overrides your core functions.) Access these fields as variables
- named with a preceding C<tm_> in front their method names. Thus,
- C<$tm_obj-E<gt>mday()> corresponds to $tm_mday if you import the fields.
-
- The gmctime() function provides a way of getting at the
- scalar sense of the original CORE::gmtime() function.
-
- To access this functionality without the core overrides,
- pass the C<use> an empty import list, and then access
- function functions with their full qualified names.
- On the other hand, the built-ins are still available
- via the C<CORE::> pseudo-package.
-
- =head1 NOTE
-
- While this class is currently implemented using the Class::Struct
- module to build a struct-like class, you shouldn't rely upon this.
-
- =head1 AUTHOR
-
- Tom Christiansen
-