在Perl中将子例程写入日志文件

队长

我是Perl脚本的新手。我想将子例程测试写入日志文件。例如

my ($logfile, $logpath);
$logpath = '/usr/bin';
$logfile = "$logpath/log.txt"; 
open (LOG,">>","$logfile") || die ("Error : can't open log file");

sub test
{
   print "Hi\n"; 
   my $date = `date`;
}

sub logFunc
{
   print LOG "Writing log files\n";
   print LOG test(); # we cannot do like this :)
}

logFunc();

说他们是15多个子例程。因此,要在每个子例程中将命令写入日志文件,我必须编写print LOG“ [Command] \ n”; 效果很好,但脚本长度很大。那么使用通用子例程是他们实现这一目标的任何方法吗?

创意

您的代码有几个问题。

  1. 您确定对(拥有)写入权限/usr/bin/吗?

  2. 您永远不会调用您log()或您的test()子例程。没有人会自动给他们打电话。

  3. 该名称log与内置log函数冲突因此,您将不得不使用&log()丑陋的前置“&”号对其进行命名,或者将其重命名。

  4. 您的test()子项只有一个隐式的返回值。而是$date显式返回值

  5. 您正在使用不open带字的全局文件句柄的不建议使用的2参数版本请使用带有词法文件句柄的3-arg版本:open my $log_fh, '>>', $logfile

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章