in reply to redirecting output in perl

If you want to redirect output from STDOUT, the console output, to a file handle, say a log file as your example suggests, you would have to open a file handle and print to that file handle. For example:
open( LOG, '>>tmp.log'); #open tmp.log for appending print LOG 'hello'; #print hello to LOG file handle

Because this is a user level file I/O this can be slow at times, and result in you filing your filesystem if not careful. Another, more professional technique to logging events in a system, would be to use the Sys::Syslog module. Demonstrated below:
use Sys::Syslog; openlog $0, 'pid', LOG_USER; #prepend progname and pid syslog('warning', "printf formated %s", $string); closelog;
This will print to /var/log/messages in a unix system, using syslogd. This forks off the logging to another process, which prevents your process from blocking on IO.

amt