use strict;
use warnings;
use Data::Dumper;
my ($row, $col) = (0, -1);
my %TABLE;
my @COLUMNS = ('Period', 'Code', 'Operator Name', 'Service', 'Invoice
+Number', 'FirstSeq',
'LastSeq', 'Message Count', 'PreTax', 'Tax Amount', 'P
+ostTax',
'Handle / Date', 'Time UTC', 'From', 'To');
my ($colPeriod, $colPartnerTco, $colOperatorName, $colService, $colInv
+oiceNo, $colFirstSeq,
$colLastSeq, $colMsgCnt, $colPreTax, $colTax, $col
+PostTax, $colHandleDate, $colTime,
$colFrom, $colTo);
my @VARIABLES = \($colPeriod ,$colPartnerTco ,$colOperatorName ,$colSe
+rvice ,$colInvoiceNo ,$colFirstSeq
,$colLastSeq ,$colMsgCnt ,$colPreTax ,$colTax ,$co
+lPostTax ,$colHandleDate ,$colTime
,$colFrom ,$colTo);
my %Header = (
columns => \@COLUMNS,
variables => \@VARIABLES,
table => \%TABLE,
heading => 'true',
row => $row,
col => $col,
);
BuildHeader(\%Header);
print $colMsgCnt;
sub BuildHeader {
my ($header_ref) = @_;
my $i = 0;
my $TABLE = $header_ref->{table};
my @variables = @{$header_ref->{variables}};
my $row = $header_ref->{row};
my $col = $header_ref->{col};
foreach ( @{$header_ref->{columns}} ) {
$TABLE{table}[$row][++$col]{value} = $_;
$TABLE{table}[$row][$col]{heading} = $header_ref->{heading};
${ $variables[$i] } = $col;
$i++;
}
}
Above code works as I expected.
Thanks Johngg. Your solution gave me the right way.
roboticus comments really helped me to find out my flaws.
Sincere thanks to leighsharpe.