in reply to Some system command not working as required after File::Tee

It is really not clear what you want to have. If you use File::Tee, then your STDOUT is copied both to your terminal and to the file. But if you try to use "less", then you'll get some junk in the log file, if the output from "less" is piped to your STDOUT as well. So, you don't really want to use File::Tee, or you should stop it before launching pager. As far as I can see, the only way to do it with File::Tee is to kill the forked process.

Maybe it makes more sense for you to open new file handle to log file, and then Tee it into STDOUT? Then you can print everything into that file handle and see things on terminal as well. Something like

use File::Tee; my $logfile = "log.txt"; open(LOG, ">>$logfile"); flock(LOG, 2); File::Tee::tee LOG, ">&STDOUT"; print LOG "some message\n"; &pager(); sub pager { my $temp = "temp.txt"; my $pager = "less"; system("$pager $temp"); }