我是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”; 效果很好,但脚本长度很大。那么使用通用子例程是他们实现这一目标的任何方法吗?
您的代码有几个问题。
您确定对(拥有)写入权限/usr/bin/
吗?
您永远不会调用您log()
或您的test()
子例程。没有人会自动给他们打电话。
该名称log
与内置log
函数冲突。因此,您将不得不使用&log()
丑陋的前置“&”号对其进行命名,或者将其重命名。
您的test()
子项只有一个隐式的返回值。而是$date
显式返回值。
您正在使用不open
带字的全局文件句柄的不建议使用的2参数版本。请使用带有词法文件句柄的3-arg版本:open my $log_fh, '>>', $logfile
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句