On Wednesday, June 29, 2005 2:19 AM, $Bill Luebkert [SMTP:[EMAIL PROTECTED]
wrote:
> Your explanation leaves a little to be desired. You could knock it
> down to a single hash that contains pointers to all your arrays if
> that helps. Then you could use names instead of numbers (or not).
> Not sure it's appropriate or not without seeing some access code.
Thank you for responding. Sorry about the ambiguity. The main program is a
sequence of computational processes that reads several files of 20K to 50K
records and splits them into 12 parallel arrays of that length. Analytic
routines generate an array (@trade) of 2K to 4K elements, each of which is a
reference to an anonymous array of, say, 7 elements; built like so:
for ($iS=1; $iS<=$#sigs; $iS++) {
... # processing...
push(@trade,[$j,$i,"TaS",$sig,$amp,$elT,$tre[$j]]); # append trade to array
}#for [0]begIx,[1]endIx,[2]indic,[3]type,[4]amplitude,[5]elapsedTime,[6]trend
Further on, other processes access this data for analysis, and to build and
print other arrays, like so:
for ($i=1;$i<=$#trade;$i++) {
... # processing...
push (@tCycle,
[$j,$l,$m,$trade[$i]->[2],$phWin,$trade[$i-2+$sSC]->[4],
$trade[$i]->[5]+$trade[$i-1]->[5],[EMAIL PROTECTED]);
... # processing...
}#for
A module was designed (TSP.pm), which contains two subroutines, one which
prints descriptive statistics, and one which prints performance metrics for the
@trade data. The subroutines, in general, access individual elements of the
anonymous arrays, like so:
for ($i=0;$i<=$#{$rT};$i++) {
... # processing...
$da = int(${$rD}[${$rT}[$i]->[0]]/86400)*86400; # $rT is ref to @trade
... # processing...
}#for
As mentioned previously, I got tired of editing the absolute indices (e.g.,
$trade[$i]->[6]) every time the order or meaning of an element of the anonymous
arrays changed; so in main I defined typeglobs:
*xbi = \0; # index into data arrays, begin time
*xei = \1; # index into data arrays, end time
*xi = \2; # indicator
*xs = \3; # signal
*xa = \4; # amplitude
*xt = \5; # elapsed time
*xr = \6; # trend
...to allow the use of variables for the indices, like so:
push (@tCycle,
[$j,$l,$m,$trade[$i]->[$xi],$phWin,$trade[$i-2+$sSC]->[$xa],
$trade[$i]->[$xt]+$trade[$i-1]->[$xt],[EMAIL PROTECTED]);
My question is how best to get those typeglobs into the namespace of module
TSP.pm so that, when I make a change, it's once in main, and the change is
automatically propagated into TSP.pm. Right now, I just cut and paste the
typeglobs from main into TSP.pm. Thank you.
-Neil
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs