if ($opt{'c'}) { open CATLOG, "<$MAILLOG"; while (my $line = ) { while_sub($line); } } else { $log = File::Tail->new( name => $MAILLOG, tail => -1); while (defined(my $line=$log->read)) { while_sub($line); } } #### if ($opt{'c'}) { open CATLOG, "<$MAILLOG"; while (my $line = ) { } else { $log = File::Tail->new( name => $MAILLOG, tail => -1); while (defined(my $line=$log->read)) { } ...while loop code here... } # End while loop close (CATLOG) if ($opt{'c'}); #### if ($opt{'c'}) { open MAILLOG_R, "<$MAILLOG" or die("Unable to open mail log: $!\n"); } else { tie *MAILLOG_R, 'File::Tail', (name => $MAILLOG, tail => -1); } while(my $line = ) { ...blah... }