I'm working on a project that requires archiving files after they are loaded into a database. What I want is for all files to be archive before exiting with status 1 or 2. Any help would be greatly appreciated. Below are the two parts of code that I am working with:

val { system($SQLLDR); outprint("\n"); if ($@) { outprint("sqlldr: $@\n\n"); exit 1; } elsif (-f "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${BAD_FILENA +ME}") { outprint("Some records are BAD and cannot be loaded:\n"); cat ("$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${BAD_FILENAME} +"); outprint("\n"); exit 2; } elsif (-f "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DISCARD_FI +LENAME}") { outprint("Some records were discarded!:\n"); cat ("$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DISCARD_FILEN +AME}"); outprint("\n"); exit 2; } else { outprint("INFO: sqlldr/archive processing completed\n"); }; Archive the datafile. Missing file causing program to abort if (-f "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DATA_FILENAME}" +) { if (move("$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DATA_FILE +NAME}", "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}archive${LPD}${ +NEW_PREFIX}_${DATA_FILENAME}")) { outprint( "[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${L +PD}${DATA_FILENAME}] was archived to [$ENV{XXX_TOP}${LPD}${TARGET_XXX +_FOLDER}${LPD}archive${LPD}${NEW_PREFIX}_${DATA_FILENAME}]\n"); } else { dieprint("during archival of [$ENV{XXX_TOP}${TARGET_XX +X_FOLDER}${LPD}${DATA_FILENAME}]: $!\n"); } } else { dieprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DATA +_FILENAME}] file not found!\n"); } #Archive the LOG file, if it exists if (-f "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${LOG_FILENAME}") + { if (move("$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${LOG_FILEN +AME}", "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}archive${LPD}${N +EW_PREFIX}_${LOG_FILENAME}")) { outprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LP +D}${LOG_FILENAME}] was archived to [$ENV{XXX_TOP}${LPD}${TARGET_XXX_F +OLDER}${LPD}archive${LPD}${NEW_PREFIX}_${LOG_FILENAME}]\n"); } else { dieprint("during archival of [$ENV{XXX_TOP}${LPD}${TAR +GET_XXX_FOLDER}${LPD}${LOG_FILENAME}]: $!\n"); } } else { outprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${LOG_ +FILENAME}] file not found! Nothing to archive!\n"); } #Archive the BAD file, if it exists if (-f "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${BAD_FILENAME}") + { if (move("$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${BAD_FILEN +AME}", "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}archive${LPD}${N +EW_PREFIX}_${BAD_FILENAME}")) { outprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LP +D}${BAD_FILENAME}] was archived to [$ENV{XXX_TOP}${LPD}${TARGET_XXX_F +OLDER}${LPD}archive${LPD}${NEW_PREFIX}_${BAD_FILENAME}]\n"); } else { dieprint("during archival of [$ENV{XXX_TOP}${LPD}${TAR +GET_XXX_FOLDER}${LPD}${BAD_FILENAME}]: $!\n"); } } else { outprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${BAD_ +FILENAME}] file not found! Nothing to archive!\n"); } #Archive the DISCARD file, if it exists if (-f "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DISCARD_FILENAM +E}") { if (move("$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DISCARD_F +ILENAME}", "$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}archive${LPD +}${NEW_PREFIX}_${DISCARD_FILENAME}")) { outprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LP +D}${DISCARD_FILENAME}] was archived to [$ENV{XXX_TOP}${LPD}${TARGET_X +XX_FOLDER}${LPD}archive${LPD}${NEW_PREFIX}_${DISCARD_FILENAME}]\n"); } else { dieprint("during archival of [$ENV{XXX_TOP}${LPD}${TAR +GET_XXX_FOLDER}${LPD}${DISCARD_FILENAME}]: $!\n"); } } else { outprint("[$ENV{XXX_TOP}${LPD}${TARGET_XXX_FOLDER}${LPD}${DISC +ARD_FILENAME}] file not found! Nothing to archive!\n"); }; outprint("INFO: sqlldr/archive processing completed\n");

In reply to Combining Statements by nu2this

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.