When I execute it like this (note that the name of the log file is the same as log file in the script),#!/usr/bin/perl use warnings; use strict; $|++; my $main_log = '/tmp/main_log.txt'; my $sub_log = '/tmp/sub_log.txt'; print "Start: Coming from the script.\n"; open( my $main_log_file, '>>', $main_log ) or die( "Error: Cannot open $main_log" ); print $main_log_file "Coming from re-opening " . "the opened log file.\n\n"; open( my $sub_log_file, '<', $sub_log ) or die( "Error: Cannot open $sub_log" ); print $main_log_file $_ while( <$sub_log_file> ); close( $sub_log_file ); close( $main_log_file ); <>; # This will just pause the script. print "End: Coming from the script.\n";
Since I added the '<>;' statement, it will pause the script before it completely ends. Here the log file before the '<>;' statement. So, the additional information is being written to the log file.#$ perl test.pl > /tmp/main_log.txt
And here's the output after the '<>;' statement. The 'additional information' becomesStart: Coming from the script. Coming from re-opening the opened log file. Coming from sub-log file.
So, the output that I want is something like this.Start: Coming from the script. End: Coming from the script. ened log file. Coming from sub-log file.
So, is there a workaround on what I am trying to do?Start: Coming from the script. Coming from re-opening the opened log file. Coming from sub-log file. End: Coming from the script.
In reply to How to Write Information to an Opened File by bichonfrise74
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |