Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Если изменился размер файла, как это узнать? |
Автор: Uran34 10.12.2010, 19:30 |
Такой вопрос. Есть некий файл, открывающийся при начале работы программы. Допустим он имеет определненный размер. Этот размер имеет влияние на работу программы при следующем ее, повторном запуске. Т. е. если изменится размер файла - исказятся данные, формирующиеся последующими вычислениями программы на сервере при запуске другим пользователем. Мысль такая: зафиксировать размер файла при первом сеансе работы, используя -s $name_file, а потом, при втором запуске сравнить измеренное значение с изменившимся. Если значения не равны, принимаются соответсвующие корректирующие меры. Вот как это сделать, голову сломал, не знаю. Есть ли функция, подобная операциям -s, -z, чтобы узнать, произошло ли изменение размера? |
Автор: arto 10.12.2010, 21:36 |
# touch aa # perl -le 'print -s "aa"' 0 # cat >|aa aa ^D # perl -le 'print -s "aa"' 3 не оно? |
Автор: Uran34 11.12.2010, 21:12 |
Признаться, ничего не понял. А можно как-нибудь поподробнее, с разъяснениями? (Я же только учусь ![]() |
Автор: arto 11.12.2010, 22:43 |
тестовая функция -s file возвращает раз мер файла в байтах (perldoc -f -s) размер файла возвращает так же функция stat (perldoc -f stat) |
Автор: gcc 12.12.2010, 11:29 |
еще есть: Event::Notify http://search.cpan.org/~dmaki/Event-Notify-0.00004/lib/Event/Notify.pm File::ChangeNotify http://search.cpan.org/~drolsky/File-ChangeNotify-0.19/lib/File/ChangeNotify.pm с библиотеки EV как-то можно, наверное MVC Catalyst когда работает и когда изменились файлы, то веб-сервер(HTTP::DEAMON) может перегрузить себя, чтобы внеслись изменения в работающее приложение |
Автор: shamber 12.12.2010, 20:11 | ||
какие проблемы, пишите результат измерения куда хотите(файл, база еще какие варианты), при запуске читайте их в хеш и сравнивайте. |