Hi Bob,
I am having trouble writing another new format into the same file as the one
I mentioned in the previous email.
I executed the following code and it prints out the SUMMARY format but NOT
the SUMMARY1 format into the same file.
Any ideas ?
 
Thanks in advance
Tony

The code is as follows :
sub create_summary_report
{
     my (@record, @record_processed, $element, $rows_copied,
$rows_processed, $line_output, $oldhandle);

     @record = qw(A B C D);
     @record_processed = qw(ACCOUNT);

     $rows_copied    = "rows copied";
     $rows_processed = "rows_processed";
     $element = 0;

     open SUMMARYTMP, "<$bcp_file_directory$reports_file_summary_tmp"
          or die "Unable to open $reports_file_summary_tmp for reading:
$!\n";

     open SUMMARY, ">$reports_directory$reports_file_summary_final"
          or die "Unable to open $reports_file_summary_final for writing:
$!\n";

     print SUMMARY "Extraction Summary Details\n";
     print SUMMARY "--------------------------\n";
     print SUMMARY "Server            : $server\n";
     print SUMMARY "Database          : $db\n";
     print SUMMARY "User              : $user\n";
     print SUMMARY "Account (From)    : $fromAccount\n";
     print SUMMARY "Account (To)      : $toAccount\n";
     print SUMMARY "Start Time        : $start_time\n";
     print SUMMARY "End Time          : $end_time\n\n\n";
     print SUMMARY "Record (Bulk Copied)\n";
     print SUMMARY "--------------------------\n";

     while(<SUMMARYTMP>) {
          chop;
          $line_output = $_;
          if ($line_output =~ /\b$rows_copied\b/) {
             write(SUMMARY);
             $element = $element + 1;
          }
     }

     $element = 0;
     print SUMMARY "\n\nRecord (Processed)\n";
     print SUMMARY "------------------------\n";

     while(<SUMMARYTMP>) {
          chop;
          $line_output = $_;
          print "$line_output\n";
          if ($line_output =~ /\b$rows_processed\b/) {
             $oldhandle = select(SUMMARY);
             $~ = "SUMMARY1";
             select($oldhandle);
             write(SUMMARY);
             $element = $element + 1;
          }
     }

     close SUMMARYTMP
          or die "Error closing $reports_file_summary_tmp";

     close SUMMARY
          or die "Error closing $reports_file_summary_final";

format SUMMARY =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$record[$element], $line_output
..

format SUMMARY1 =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$record_processed[$element], $line_output
..
}


-----Original Message-----
From: bob ackerman [mailto:[EMAIL PROTECTED]]
Sent: 16 April 2002 19:36
To: [EMAIL PROTECTED]
Subject: Re: Writing formatted results to a file



On Tuesday, April 16, 2002, at 10:11  AM, Ho, Tony wrote:

> Hi guys
> I was wondering if you could help me.
> Does anybody know how to write formatted results to a file ?
>
> I am getting the following error :
>
> write() on closed filehandle main::ADDRESSLABEL at ./test.pl line 2785,
> <SUMMARYTMP> line 5.
> write() on closed filehandle main::ADDRESSLABEL at ./test.pl line 2785,
> <SUMMARYTMP> line 15.
> write() on closed filehandle main::ADDRESSLABEL at ./test.pl line 2785,
> <SUMMARYTMP> line 21.
>
> This is the section of my perl code reads results from an BCP output file
> and is as follows :
>
> sub create_summary_report
> {
>      my (@record, $element, $rows_copied, $line_output);
>      @record = qw(A B C);
>      $rows_copied = "rows copied";
>      $element = 0;
>
>      open SUMMARYTMP, "<$bcp_file_directory$log_file_summary_tmp"
>           or die "Unable to open $log_file_summary_tmp for reading: $!\n"
> ;
>
>      open SUMMARY, ">$log_directory$log_file_summary_final"
>           or die "Unable to open $log_file_summary_final for writing: 
> $!\n";
>
>      print SUMMARY "Summary Details\n";
>      print SUMMARY "--------------------------\n";
>      print SUMMARY "Account (From) : $fromAccount\n";
>      print SUMMARY "Account (To)   : $toAccount\n\n\n";
>      print SUMMARY "Record Types\n";
>      print SUMMARY "------------\n";
>
> format ADDRESSLABEL =
> @<<<<<, @<<<<<
> $record[$element], $line_output
> ..
>
>      while(<SUMMARYTMP>) {
>           chop;
>           $line_output = $_;
>           if ($line_output =~ /\b$rows_copied\b/) {
>              print SUMMARY write(ADDRESSLABEL);
>              $element = $element + 1;
>           }
>      }
>

in addition you need to quote the format label when assigning:
$~ = 'ADDRESSLABEL';

>      close SUMMARYTMP
>           or die "Error closing $log_file_summary_tmp";
>
>      close SUMMARY
>           or die "Error closing $log_file_summary_final";
> }
>
> I would be most grateful with any advice.
>
> Thanks in advance
> Tony
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to