home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / localtime.pm < prev    next >
Text File  |  2003-11-07  |  2KB  |  87 lines

  1. package Time::localtime;
  2. use strict;
  3. use 5.006_001;
  4.  
  5. use Time::tm;
  6.  
  7. our(@ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $VERSION);
  8. BEGIN {
  9.     use Exporter   ();
  10.     @ISA         = qw(Exporter Time::tm);
  11.     @EXPORT      = qw(localtime ctime);
  12.     @EXPORT_OK   = qw(  
  13.             $tm_sec $tm_min $tm_hour $tm_mday 
  14.             $tm_mon $tm_year $tm_wday $tm_yday 
  15.             $tm_isdst
  16.             );
  17.     %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
  18.     $VERSION     = 1.02;
  19. }
  20. use vars      @EXPORT_OK;
  21.  
  22. sub populate (@) {
  23.     return unless @_;
  24.     my $tmob = Time::tm->new();
  25.     @$tmob = (
  26.         $tm_sec, $tm_min, $tm_hour, $tm_mday, 
  27.         $tm_mon, $tm_year, $tm_wday, $tm_yday, 
  28.         $tm_isdst )
  29.         = @_;
  30.     return $tmob;
  31.  
  32. sub localtime (;$) { populate CORE::localtime(@_ ? shift : time)}
  33. sub ctime (;$)     { scalar   CORE::localtime(@_ ? shift : time) } 
  34.  
  35. 1;
  36.  
  37. __END__
  38.  
  39. =head1 NAME
  40.  
  41. Time::localtime - by-name interface to Perl's built-in localtime() function
  42.  
  43. =head1 SYNOPSIS
  44.  
  45.  use Time::localtime;
  46.  printf "Year is %d\n", localtime->year() + 1900;
  47.  
  48.  $now = ctime();
  49.  
  50.  use Time::localtime;
  51.  use File::stat;
  52.  $date_string = ctime(stat($file)->mtime);
  53.  
  54. =head1 DESCRIPTION
  55.  
  56. This module's default exports override the core localtime() function,
  57. replacing it with a version that returns "Time::tm" objects.
  58. This object has methods that return the similarly named structure field
  59. name from the C's tm structure from F<time.h>; namely sec, min, hour,
  60. mday, mon, year, wday, yday, and isdst.
  61.  
  62. You may also import all the structure fields directly into your namespace
  63. as regular variables using the :FIELDS import tag.  (Note that this still
  64. overrides your core functions.)  Access these fields as
  65. variables named with a preceding C<tm_> in front their method names.
  66. Thus, C<$tm_obj-E<gt>mday()> corresponds to $tm_mday if you import
  67. the fields.
  68.  
  69. The ctime() function provides a way of getting at the 
  70. scalar sense of the original CORE::localtime() function.
  71.  
  72. To access this functionality without the core overrides,
  73. pass the C<use> an empty import list, and then access
  74. function functions with their full qualified names.
  75. On the other hand, the built-ins are still available
  76. via the C<CORE::> pseudo-package.
  77.  
  78. =head1 NOTE
  79.  
  80. While this class is currently implemented using the Class::Struct
  81. module to build a struct-like class, you shouldn't rely upon this.
  82.  
  83. =head1 AUTHOR
  84.  
  85. Tom Christiansen
  86.