#!/usr/bin/perl -wT use strict; my $d = data->new; print $d->hour($d->now('h')), ":"; print $d->minute($d->now('m')), ":"; print $d->second($d->now('s')), " - "; print $d->day($d->now('D')), " day of "; print $d->month($d->now('M')), " "; print $d->year($d->now('Y')), "\n";; { package data; ######################### #Call a new package with # my $d = data->new; # #Grab the localtime #(of when a new package was initialized) #with # $d->now('s'); #seconds # $d->now('m'); #minutes # $d->now('h'); #hour # $d->now('D'); #day # $d->now('M'); #month # $d->now('Y'); #year # #"Nicely" format with # my $value = 1; # $d->day($value); #returns "1st" # $d->month($value); #returns "January" ########################## sub new { my $proto = shift; my $class = ref($proto) || $proto; my @now = localtime(); $now[0] += 1; #format the seconds $now[1] += 1; #format the minutes $now[2] += 1; #format the hour $now[4] += 1; #format the month $now[5] += 1900; #format the year my $self = {}; $self->{now_second} = $now[0]; $self->{now_minute} = $now[1]; $self->{now_hour} = $now[2]; $self->{now_day} = $now[3]; $self->{now_month} = $now[4]; $self->{now_year} = $now[5]; bless ($self, $class); return $self; } sub now { my $self = shift; my $type = shift; if ($type eq 's') { return $self->{now_second}; } elsif ($type eq 'm') { return $self->{now_minute}; } elsif ($type eq 'h') { return $self->{now_hour}; } elsif ($type eq 'D') { return $self->{now_day}; } elsif ($type eq 'M') { return $self->{now_month}; } elsif ($type eq 'Y') { return $self->{now_year}; } } sub second { my $self = shift; my $value = shift; return $value; } sub minute { my $self = shift; my $value = shift; return $value; } sub hour { my $self = shift; my $value = shift; #line 69 return $value; } sub day { my $self = shift; my $value = shift; if ($value == 1) { "1st" } elsif ($value == 2) { "2nd" } elsif ($value == 3) { "3rd" } elsif ($value == 21) { "21st" } elsif ($value == 22) { "22nd" } elsif ($value == 23) { "23rd" } elsif ($value == 31) { "31st" } elsif (($value >= 4) && ($value <= 31)) { return $value . "th"; } else { "invalid day" } } sub month { my $self = shift; my $value = shift; if ($value == 1) { "January" } elsif ($value == 2) { "February" } elsif ($value == 3) { "March" } elsif ($value == 4) { "April" } elsif ($value == 5) { "May" } elsif ($value == 6) { "June" } elsif ($value == 7) { "July" } elsif ($value == 8) { "August" } elsif ($value == 9) { "September" } elsif ($value == 10) { "October" } elsif ($value == 11) { "November" } elsif ($value == 12) { "December" } else { "invalid month" } } sub year { my $self = shift; my $value = shift; return $value; } }
In reply to Re: OO reference problem
by fireartist
in thread OO reference problem
by fireartist
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |