Hash::Type

Hash::Type module contains pseudo-hashes as arrays tied to a "type" (list of fields).
Download

Hash::Type Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Laurent Dami
  • Publisher web site:
  • http://search.cpan.org/~dami/

Hash::Type Tags


Hash::Type Description

Hash::Type module contains pseudo-hashes as arrays tied to a "type" (list of fields). Hash::Type module contains pseudo-hashes as arrays tied to a "type" (list of fields).SYNOPSIS use Hash::Type; # create a Hash::Type my $personType = new Hash::Type(qw(firstname lastname city)); # create and populate some hashes tied to $personType tie %wolfgang, $personType, "wolfgang amadeus", "mozart", "salzburg"; $ludwig = new $personType ("ludwig", "van beethoven", "vienna"); $jsb = new $personType; $jsb->{city} = "leipzig"; @{$jsb}{qw(firstname lastname)} = ("johann sebastian", "bach"); # add fields dynamically $personType->add("birth", "death") or die "fields not added"; $wolfgang{birth} = 1750; # More complete example : read a flat file with headers on first line my ($headerline, @datalines) = map {chomp; $_} ; my $ht = new Hash::Type(split /t/, $headerline); foreach my $line (@datalines) { my $data = new $ht(split /t/, $line); work_with($data->{someField}, $data->{someOtherField}); } # an alternative to Time::gmtime and Time::localtime my $timeType = new Hash::Type qw(sec min hour mday mon year wday yday); my $localtime = new $timeType (localtime); my $gmtime = new $timeType (gmtime); print $localtime->{hour} - $gmtime->{hour}, " hours difference to GMT"; # comparison functions my $byAge = $personType->cmp("birth : -num, lastname, firstname"); my $byNameLength = $personType->cmp(lastname => {length($b) length($a)}, lastname => 'alpha', firstname => 'alpha'); showPerson($_) foreach (sort $byAge @people); showPerson($_) foreach (sort $byNameLength @people); # special comparisons : dates my $US_DateCmp = $myHashType->cmp("someDateField : m/d/y"); my $FR_InverseDateCmp = $myHashType->cmp("someDateField : -d.m.y"); Requirements: · Perl


Hash::Type Related Software