GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Badger::Duration(3) User Contributed Perl Documentation Badger::Duration(3)
 

Badger::Duration - simple class for representing durations

    use Badger::Duration 'Duration';
    my $d = Duration('7 days 4 hours 20 minutes');
    print "$d is ", $d->seconds, " seconds\n";

This is a simple module for parsing durations.
It is ideally suited for things like the calculation of expiry times (e.g. for cookies, items in a cache, etc) allowing them to be specified in human-friendly format, e.g. "4 minutes 20 seconds" (or various alternatives).

This is a shortcut alias to "Badger::Duration".
    use Badger::Duration 'DURATION';
    
    my $duration = DURATION->new(
        hours   => 4,
        minutes => 20,
    );              # same as Badger::Duration->new(...);

This subroutine returns the name of the "Badger::Duration" class when called without arguments. Thus it can be used as an alias for "Badger::Duration" as per DURATION.
    use Badger::Duration 'Duration';
    
    my $duration = Duration->new(...);  # same as Badger::Duration->new(...);
When called with arguments, it creates a new "Badger::Duration" object.
    my $duration = Duration(...);       # same as Badger::Duration->new(...);

The following methods are defined in addition to those inherited from the Badger::Comparable and Badger::Base base classes.

Constructor method to create a new "Badger::Duration" object. The duration can be specified as a single "duration" parameter.
    my $d = Badger::Duration->new(
        duration => '4 minutes 20 seconds'
    );
The duration string can contain any number of "<number> <duration>" sequences separate by whitespace, commas or the word "and". The following are all valid:
    4 minutes 20 seconds
    4 minutes,20 seconds
    4 minutes, 20 seconds
    4 minutes and 20 seconds
The canonical names for durations are: "year", "month", "day", "hour", "minute" and "second". The following aliases may be used:
second
    s sec secs seconds
    
minute
    m min mins minutes
    
hour
    h hr hrs hours
    
day
    d days
    
week
    w wk weeks
    
month
    M mon mons months
    
year
    y yr yrs years
    
A duration can also be specified using named parameters:
    my $d = Badger::Duration->new(
        minutes => 4,
        seconds => 20,
    );
Or by reference to a hash array:
    my $d = Badger::Duration->new({
        minutes => 4,
        seconds => 20,
    });
This can also be specified as an explicit "duration" option if you prefer:
    my $d = Badger::Duration->new(
        duration => {
            minutes => 4,
            seconds => 20,
        }
    );
In all cases, any of the valid aliases for durations may be used, e.g.
    my $d = Badger::Duration->new(
        h => 1,
        m => 4,
        s => 20,
    );

Returns a reference to a hash array containing the canonical values of the duration.
    my $d = Badger::Duration->new(
        duration => '4 hours 20 minutes'
    );
    my $h = $d->duration;
    print $h->{ hour   };     # 4
    print $h->{ minute };     # 20

Returns the total number of seconds for the duration.
    my $d = Badger::Duration->new(
        duration => '4 hours 20 minutes'
    );
    print $d->seconds;      # 15600

This method is defined to enable the functionality provided by the Badger::Comparable base class.
    use Badger::Duration 'Duration';
    my $d1 = Duration('4 hours 20 minutes');
    my $d2 = Duration('270 minutes');
    if ($d1 < $d2) {
        # ...do something...
    }

Returns a canonical text representation of the duration.
    use Badger::Duration 'Duration';
    my $d1 = Duration('4 hrs 20 mins');
    print $d1->text;            # 4 hours 20 minutes
Note that the units will be pluralised appropriately. e.g.
    1 hour 1 minute 1 second
    2 hours 2 minutes 2 seconds
This method is bound to the auto-stringification operation which is a fancy way of saying it gets called automatically when you simply print a "Badger::Duration" object.
    print $d1;                  # 4 hours 20 minutes

Object initialisation method called automatically by the new() constructor method inherited from the Badger::Base base class.

Internal method to parse a text string and return a hash reference of canonical values.

Internal method to parse a hash reference and return another hash reference of canonical values (e.g. after mapping aliases to canonical names).

Counts the total number of seconds in a duration passed by reference to a hash array.

Andy Wardley <http://wardley.org>

Copyright (C) 2013 Andy Wardley. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2016-12-12 perl v5.28.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.