Array-RealSpan

 view release on metacpan or  search on metacpan

eg/ancient  view on Meta::CPAN

#!/usr/bin/env perl
#
# Millions of years ago taken from
# http://www.elliny.gr/image/info/geological_timescale.jpg
#
use strict;
use warnings;

use Array::RealSpan;

my $point = defined $ARGV[0] ? shift : die "Usage: perl $0 0-4599.9~\n";

my $eon = Array::RealSpan->new;
$eon->set_range(    0,  545, 'Phanerozoic' );
$eon->set_range(  545, 2600, 'Proterozoic' );
$eon->set_range( 2600, 3900, 'Archaean' );
$eon->set_range( 3900, 4600, 'Hadean' );

my $era = Array::RealSpan->new;
$era->set_range(   0,    65, 'Cenozoic' );
$era->set_range(  65,   248, 'Mesozoic' );
$era->set_range( 248.2, 545, 'Paleozoic' );
$era->set_range( 545,  4600, 'Precambrian' );

my $period = Array::RealSpan->new;
$period->set_range(   0,     1.81, 'Quaternary' );
$period->set_range(   1.81, 23.8,  'Neogene' );
$period->set_range(  23.8,  65,    'Paleogene' );
$period->set_range(  65,   142,    'Cretaceous' );
$period->set_range( 142,   205.7,  'Jurassic' );
$period->set_range( 205.7, 248.2,  'Triassic' );
$period->set_range( 248.2, 290,    'Permian' );
$period->set_range( 290,   354,    'Carboniferous' );
$period->set_range( 354,   417,    'Devonian' );
$period->set_range( 417,   443,    'Silurian' );
$period->set_range( 443,   495,    'Ordovician' );
$period->set_range( 495,   545,    'Cambrian' );

my $epoch = Array::RealSpan->new;
$epoch->set_range(  0,     0.01, 'Holocene' );
$epoch->set_range(  0.01,  1.81, 'Pliestocene' );
$epoch->set_range(  1.81,  5.32, 'Pliocene' );
$epoch->set_range(  5.32, 23.8,  'Miocene' );
$epoch->set_range( 23.8,  33.7,  'Oligocene' );
$epoch->set_range( 33.7,  55,    'Eocene' );
$epoch->set_range( 55,    65,    'Paleocene' );
$epoch->set_range( 286, 323, 'Pennsylvanian' );
$epoch->set_range( 323, 360, 'Mississippian' );

my $age = Array::RealSpan->new;
$age->set_range(   0,     0.7,  'Current' );
$age->set_range(   0.7,   1.81, 'Calarbrian' );
$age->set_range(   1.81,  2.58, 'Gelasian' );
$age->set_range(   2.58,  3.6,  'Piacenzian' );
$age->set_range(   3.6,   5.32, 'Zanclean' );
$age->set_range(   5.32,  7.12, 'Messinian' );
$age->set_range(   7.12, 11.72, 'Tortonian' );
$age->set_range(  11.72, 14.8,  'Serravallian' );
$age->set_range(  14.8,  16.4,  'Langhian' );
$age->set_range(  16.4,  20.5,  'Burdigalian' );
$age->set_range(  20.5,  23.8,  'Aquitanian' );
$age->set_range(  23.8,  28.5,  'Chattian' );
$age->set_range(  28.5,  33.7,  'Rupelian' );
$age->set_range(  33.7,  37,    'Priabonian' );



( run in 0.849 second using v1.01-cache-2.11-cpan-5a3173703d6 )