Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение временных характеристик файла 
:(
    Опции темы
comhunt
Дата 14.3.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Существует ли аналогичный нижеприведенным файловый оператор для определения время создания/последнего изменения файла?

-d $file; 
-s $file;
-e $file;


Варианты с подключением сторонних модулей или использования stat($file) - не предлагать. smile


PM MAIL   Вверх
RomanCh
Дата 14.3.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 23.8.2009

Репутация: нет
Всего: нет



Помоему ты желаешь чего-то странного. Я например не знаю ответа на этот вопрос, и совершенно не понимаю условия:
Цитата

использования stat($file) - не предлагать

Объяснишь почему?
PM MAIL WWW Jabber   Вверх
DurRandir
Дата 14.3.2010, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 335
Регистрация: 27.9.2009

Репутация: 14
Всего: 17



perldoc -f -x
Если оно там есть, значит есть. Если нет - значит, нет. Читайте документацию.
PM   Вверх
dva300
Дата 14.3.2010, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(comhunt @ 14.3.2010,  12:26)
Существует ли аналогичный нижеприведенным файловый оператор для определения время создания/последнего изменения файла?

-d $file; 
-s $file;
-e $file;


Варианты с подключением сторонних модулей или использования stat($file) - не предлагать. smile

google сломался ?  smile  библиотеки сгорели ?  smile 


    $modification_time = int(-M $filename);
    print "Со времени последнего изменения файла прошло $modification_time дней.\n";

    $access_time = int(-A $filename);
    print "Со времени последнего чтения файла прошло $access_time дней.\n";

    $ctime = int(-C $filename);
    print "Со времени последнего изменения файлового дескриптора прошло $ctime дней";

Это сообщение отредактировал(а) dva300 - 14.3.2010, 18:36
--------------------
Участник движения Культура Вождения
PM   Вверх
arto
Дата 16.3.2010, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



самое интересное, все они основаны на stat(2).
строго говоря, желание comhunt удовлетворить нельзя.
PM MAIL ICQ   Вверх
dva300
Дата 16.3.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(arto @ 16.3.2010,  09:52)
самое интересное, все они основаны на stat(2).
строго говоря, желание comhunt удовлетворить нельзя.

может человека прет именно от такого синтаксиса smile 
--------------------
Участник движения Культура Вождения
PM   Вверх
mvsgt
Дата 16.3.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: 1
Всего: 1



Наверно, человеку надо узнать время для миллиона файлов, а вызывать миллион раз stat не хочется.
PM MAIL   Вверх
comhunt
Дата 17.3.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Спасибо всем, кто принял участие в обсуждении топика smile

Изначально цель была минимизировать время работы.

Я изначально предполагал что, что вариант -d $file; будет работать быстрее чем вариант со stat. Но как выяснилось нет. Как я понял и тот и другой вариант основывается на вызове системной функции - своей для каждой операционки. 

Чтобы вычислить реальное время надо сделать еще что-то вроде:

my $sekund=$dney*24*3600;
$dirhash[$jc]{'ctime'}=time()-$sekund;

В общем реальной экономии времени не получилось. Я это проверил и с тем и с другим вариантом на большом количестве операций.

Синтаксис действительно симпотичнее (на мой взгляд) - но это не главное.

ps
А обращений к файлам действительно очень много smile

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.