输出perl结果到文件中

时间:2015-11-23 07:10:57

标签: linux bash perl

我有一个perl脚本,当我使用perl文件名运行时工作正常,但是当我使用命令时

perl -w logint > logintime.html

我收到此错误

Use of uninitialized value $days in multiplication (*) at logint line 5, <LAST> line 3.

从第3-47行重复此事

这是perl代码

#!/usr/bin/perl
open LAST, "last |";
while (<LAST>) {
    if (($name,$days,$hours,$mins) = /^(\w+).+\((?:(\d+)\+)?(\d+):(\d+)/) {
        $TIMES{$name} += 1440 * $days + 60 * $hours + $mins;
    }
}
foreach (sort keys %TIMES) {
    print "$_ $TIMES{$_}\n";
}

这就是我试图输出它的方式。

#!/bin/bash
echo $HDR > ~/public_html/logintime.html
perl -w logint > logintime.html
echo $FTR >> ~/public_html/logintime.html

1 个答案:

答案 0 :(得分:1)

这只是一个警告,这不是错误。当你运行该命令时,你会看到它,因为'-w'是警告pragma。

你也可以把它放在shebang的末尾

    #!/usr/bin/perl -w

或'使用警告;'。无论如何,警告只是说它没有价值。看起来您正在读取上次登录以查看上次登录的人,输出可能会有所不同,具体取决于您所使用的操作系统。我会确认它按预期工作并获得正确的值。

最佳做法是使用'use strict;'。