I am currently using this code (in summary) to loop through my array -- but after once through - it ends.
------------
@all_load_files = glob("${path_gfr}\\ess\\${
cube}\\dat
afiles\\*_
Parms.txt"
);
foreach (@all_load_files)
{
$curfile = $_;
if (( -e ${curfile} ))
{
open (FH_CURFILE, '<', "$_") || die "Cannot open file $_: $!";
while (<FH_CURFILE>)
{
chomp;
($app_name, $db_name, $cube_type, $shell_app_new, $shell_rule_db_new, $rules_file_name, $process_year) = split(/::/);
}
close (FH_CURFILE);
if (((${db_name} !~ /FPRE/)) || ((${db_name} =~ /FPRE/) && ( -e ${fpre_ind_file} )))
{
rename "$curfile", "${path_gfr}\\ess\\${cube}
\\datafile
s\\Load_${
master_app
}_${db_nam
e}_${cycle
}_Selected
.txt";
REMAINDER OF CODE
}
else
{ CONDITIONS NOT MET CODE
}
-------------------
Basically - the FPRE databases cannot run until their file indicator that the staging files have been created is met. I need this logic to keep trying until the indicator is there... perhaps some other condition is met - like it tried 100 times or something...
Perhaps I thought - I should not be using an array for this... and that is where my logic is wrong. The whole process is:
I have a directory of Parms files
I need to run a set of code for each parm file
After I select the parm file (i rename it so it is not used again) as two jobs are running this .pl
the FPRE databases have a special condition that must be met and I need to loop until that condition is met or a secondary failure consition is met.
Thanks Perl experts. I have been doing this for one month now and am liking it but feel a bit lost in the more complex matters.
Start Free Trial