in reply to Populate variables with values

When you declare the @VARIABLES array, you are filling it with the literal strings '$colPeriod', '$colCode', '$colName', '$colHandle', '$colDate', '$colFrom', and '$colTo'
Perhaps that line should be
my @VARIABLES = ($col."Period", $col."Code", $col."Name", $col."Handle +", $col."Date", $col."From", $col."To");
Your BuildHeader() function will populate the %Header hash, but I suspect it isn't doing quite what you want. If you add
use Data::Dumper
to the start of your program, and then after you have called BuildHeader(), add
print Dumper(%Header);
you should see what %Header now looks like.

Replies are listed 'Best First'.
Re^2: Populate variables with values
by kalyanrajsista (Scribe) on Sep 10, 2009 at 13:13 UTC
    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.