#! /home/gnu/bin/perl package main; use strict; use autouse 'Data::Dumper' => qw(Dumper); # prototypes sub readAdvisorTablesIntoHashref($); sub measureFieldLengths(); sub writeOutHashrefs(); sub writeOutHashref($$); #globals my $allActivity_hashref = { '1234-5678' => { 'Address' => "656 Poplar" ,'City' => "Monroe" ,'State' => "WI" ,'Zip' => "87654" ,'Phone' => "444-555-6666" } , '5757-4968' => { 'Address' => "656 Poplar" ,'City' => "Nightmare" ,'State' => "ND" ,'Zip' => "56532" ,'Phone' => "777-8888" } }; my $allActivity_fieldLength_hashref = undef; my $subHadErrors = 0; $subHadErrors = measureFieldLengths() unless( $subHadErrors); $subHadErrors = writeOutHashrefs() unless( $subHadErrors); exit(0); #------------------------------- sub measureFieldLengths() { print "entering measureFieldLengths\n"; my $errorHit = 0; measureFieldLength( "ACTIVITY", $allActivity_hashref, $allActivity_fieldLength_hashref); print "exiting measureFieldLengths\n"; return $errorHit; } #------------------------------- sub measureFieldLength($$$) { my ( $tableName, $tableName_hashref, $tableName_fieldLength_hashref) = @_; print "entering measureFieldLength\n"; my $errorHit = 0; print "--inside measureFieldLength--input --". Dumper( $tableName_hashref); unless( $errorHit) { for my $Id ( sort{ $tableName_hashref->{$a} <=> $tableName_hashref->{$b} } keys( %$tableName_hashref)) { my $row_hashref = $tableName_hashref->{$Id}; for my $field_name ( sort{ $row_hashref->{$a} <=> $row_hashref->{$b} } keys( %$row_hashref)) { my $field_valu = $row_hashref->{$field_name}; $tableName_fieldLength_hashref->{$Id}->{$field_name} = 0; $tableName_fieldLength_hashref->{$Id}->{$field_name} = length( $field_valu) if( defined( $row_hashref->{$field_name})); } } } print "--inside measureFieldLength--output --". Dumper( $tableName_fieldLength_hashref); print "exiting measureFieldLength\n"; return $errorHit; } #------------------------------- sub writeOutHashrefs() { print "entering writeOutHashrefs\n"; my $errorHit = 0; print "--inside writeOutHashrefs --input --". Dumper( $allActivity_fieldLength_hashref); print "WT* why isnt global allActivity_fieldLength_populated ????\n"; writeOutHashref( "ACTIVITY", $allActivity_fieldLength_hashref); print "entering writeOutHashrefs\n"; return $errorHit; } #------------------------------- sub writeOutHashref($$) { my ( $tableName, $tableName_hashref) = @_; print "entering writeOutHashref\n"; my $errorHit = 0; unless( $errorHit) { for my $Id ( sort{ $tableName_hashref->{$a} <=> $tableName_hashref->{$b} } keys( %$tableName_hashref)) { my $row_hashref = $tableName_hashref->{$Id}; print $Id."\n"; my $outline = $Id; for my $field_name ( sort{ $row_hashref->{$a} <=> $row_hashref->{$b} } keys( %$row_hashref)) { my $field_valu = $row_hashref->{$field_name}; $outline = $outline.join('=', $field_name, $field_valu); } print $outline."\n"; } } print "entering writeOutHashref\n"; return $errorHit; }