I would suggest adding some print Dumper statements in to make sure that you have the kind of thing that you think that you have...
Running some simple test should provide some light on what data this pkoutFile sub is really getting. I simplified your statement to input the sub's input args - avoid using indicies unless you have to - Perl is designed so they aren't needed nearly as often as in other languages.
#!/usr/bin/perl -w
use warnings;
use Data::Dumper;
pkoutFile($OUTFP, ';:=~',"301","WPSPD", $valDate1, "SPREAD",
\@retArray);
sub pkoutFile
{
my( $outFH, $delims, $branchID, $sourceSystem,
$valDateY4MD, $rateType, $rowsHdl, $colNamesHdl)= @_;
print Dumper \$rowsHdl;
#$colNamesHdl is undefined in this case
#so, it appears that this following code is executed
$k = $$rowsHdl[0]; # $rowsHdl->[0]
print Dumper \$k;
@ff = keys(%$k);
print Dumper \@ff;
}
update: I noticed that for example the k1 value has a calculation done on it, but is never printed. With further looking, if the intent of the regex you want is to remove leading and trailing spaces, I would suggest this:
foreach ($delims, $branchID, $valDateY4MD,
$sourceSystem, $rateType)
{
s/^\s+//; #remove leading spaces
s/\s+$//; #remove trailing spaces
}
This sets $_ to each of the scalar variables in turn and then runs 2 simple and fast regex'es that do not require the /g switch. In this case $_ is an alias for the variable (like $delims) and changes in the loop are reflected in changes to the actual variable.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.