2015-06-16 1 views
1

Я бы ожидать -M $_ быть отрицательным, но оно равно нулю для:-М Script время начала времени модификации файла минус, в дни

perl -E 'qx(touch $_), sleep(5), say -M for "/tmp/file"' 

perldoc ли упоминает такое поведение?

+2

Для получите отрицательное значение, вы должны сначала выполнить 'sleep' * *. –

+1

@MichaelCarman да, действительно. :) –

ответ

2

Я думаю, что это объясняет то, что вы видите

perl -E 'say "START TIME",$^T; qx(touch $_), sleep(5), say -M for "/tmp/file"; say "STAT ON FILE", (stat(_))[9]' 

выход, когда я побежал

START TIME1434460114 
0 
STAT ON FILE1434460114 

1) скрипт начинает $^T устанавливается на 1434460114

2) почти сразу файл «/ tmp/file» выполняется с временем изменения 1434460114

3) спящий режим в течение 5 секунд

4) -M сообщает разность времени модификации на файл и время запуска сценария в качестве нулевого

попробовать это вместо

perl -E 'say "START TIME",$^T; sleep(5),qx(touch $_), say -M for "/tmp/file"; say "STAT ON FILE", (stat(_))[9]' 

выхода на моей системе

START TIME1434460296 
-5.78703703703704e-05 
STAT ON FILE1434460301 
Смежные вопросы