Lebewesen

HashArray Perl

May 19th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.86 KB | None | 0 0
  1. #!/usr/bin/perl
  2. # Example of a HashArray
  3. use Modern::Perl 2012;
  4. use Date::Calc qw(check_date);
  5. use autodie;
  6.  
  7. use constant {
  8.     ID => 0,
  9.     DATE => 1,
  10.     STORAGE => 2,
  11.     ORDERD => 3,
  12. };
  13.  
  14. my $ref = &generate_array;
  15. foreach my $key (sort {$a <=> $b} keys %{$ref}){
  16.     my $calc =sprintf("%6s",${${$ref}{$key}}[STORAGE] + ${${$ref}{$key}}[ORDERD]);
  17.     say "$key\t @{${$ref}{$key}} = $calc";
  18. }
  19.  
  20. sub generate_array(){
  21.     my %test;
  22.     foreach (1 .. 10)
  23.     {
  24.         $test{$_}=[&generate_date, sprintf("%3.0f", $_), &number, &number];
  25.     }
  26.     return \%test
  27. }
  28.  
  29. sub generate_date{
  30.     my ($year,$month,$day);
  31.     do {
  32.         do {$year  = sprintf("%4.0f", rand(2011));}until($year>1969);
  33.         $month = sprintf("%02d", rand(12));
  34.         $day   = sprintf("%02d", rand(31));
  35.     } until (check_date($year,$month,$day));
  36.     return "$year-$month-$day";
  37. }
  38.  
  39. sub number {
  40.     return sprintf("%4.0f", rand(4999));
  41. }
Advertisement
Add Comment
Please, Sign In to add comment