Нельзя использовать строку ("XXX") в качестве символа ref, если используется "строгое refs". - PullRequest
2 голосов
/ 01 ноября 2011

Это журнал, который я пытаюсь проанализировать:

06:27:54 /data/noc/startup/startup_ptf_pats.sh startup initiated by waljoh @ Tue Nov  1      06:27:54 EDT 2011
06:27:54 /data/noc/startup/startup_ptf_pats.sh verifying that engine is change controlled
06:27:54 /data/noc/startup/check_change_controlled_files.sh all change controlled commands files are in synch
06:27:54 /data/noc/startup/check_today_is_holiday.sh Today is NOT a holiday
06:27:54 /data/noc/startup/check_ntpq.sh 159.79.35.42 time offset (0) is below 100   

Это сценарий, который я написал:

#!/usr/bin/perl
use warnings;
use strict;

my $todays_date = `/bin/date +%m-%d-%y`;
chomp $todays_date ;

my $grabDIR = "/data/noc/startup/logs/";
my $grabFILE = "pats." . "$todays_date" . ".txt";

print "$grabDIR$grabFILE\n" ;

my FILE;
open (FILE, "more $grabDIR$grabFILE | ");
while (<FILE>) {
        my $line = $_;
        print $line
        sleep 1;
}

Это ошибка:

/ data / noc / startup / logs / pats.11-01-11.txt Невозможно использовать строку («06:27:54 / data / noc / startup / start») в качестве символа ref, а «строгие ссылки»"используется в ./log_grap строка 17, строка 1.

1 Ответ

7 голосов
/ 01 ноября 2011

Добавьте точку с запятой:

while (<FILE>) {
    my $line = $_;
    print $line; # semicolon!
    sleep 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...