perl, вызов system(..) по истечении некоторого времени

Модератор: Модераторы разделов

tull
Сообщения: 484

perl, вызов system(..) по истечении некоторого времени

Сообщение tull »

увы, я в перле полный лох, а тут возникла необходимость чутка модифицировать скриптик.

мне нужно проверять, сколько прошло времени с некоего события, и если прошло больше n секунд, то выполнять system (mycommand)
признаком, что произошло событие, является файл. время события может храниться в файле, или файл может быть пустой, проверять можно по дате/времени файла.

т.е. мне нужна команда, которая создает этот файл.
и строчка, которая смотрит этот файл, и проверяет, прошло ли больше n сек с момента создания файла. и если прошло, то этот файлик стирается, и делается вызов system ()
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение sash-kan »

в качестве иллюстрации — bash:

Код: Выделить всё

1. touch <myfile>
2. (( $(date +%s)-$(stat -c %Z <myfile>)-<n> > 0 )) && (rm <myfile>; <mycommand>)
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
tull
Сообщения: 484

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение tull »

sash-kan писал(а):
14.05.2009 16:04
в качестве иллюстрации — bash:
спасибо, но хотелось бы на перле...
Спасибо сказали:
Аватара пользователя
SSDD
Сообщения: 157
ОС: linux

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение SSDD »

my ($file,$int,$cmd)="/tmp/passwd",10,"ls /tmp/passwd";

system($cmd) if time() - (stat($file))[10] > $int && unlink $file; # проверяем, удаляем, запускаем

open(F,">$file") && close(F); #создаем
Спасибо сказали:
tull
Сообщения: 484

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение tull »

SSDD, чего-то у меня команда не выполняется... (я уже и полный путь к команде прописал)
Спасибо сказали:
tull
Сообщения: 484

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение tull »

странное дело, когда прописал
my $cmd = "команда";
то все заработало...

спасибо за помощь!
Спасибо сказали:
Аватара пользователя
SSDD
Сообщения: 157
ОС: linux

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение SSDD »

tull писал(а):
16.05.2009 17:29
странное дело, когда прописал
my $cmd = "команда";
то все заработало...

спасибо за помощь!

это потому что некоторые модераторы не понимают толком чего редактируют ;-)

my ($file,$int,$cmd)=("/tmp/passwd",10,"ls /tmp/passwd");
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: perl, вызов system(..) по истечении некоторого времени

Сообщение sash-kan »

на зеркало, на зеркало пеняйте, уважаемый SSDD.

p.s. ну и заведомо деструктивные действия в качестве примера приводить не стоит. тут вам не там.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: