|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Armen Stepanian 2:5020/902.83 16 Oct 2001 22:24:44 To : All Subject : ? -------------------------------------------------------------------------------- Посоветуйте как решить проблемку: есть некий архив файлов, котрые хранят записи. Файлы названы cn0503.txt, lt0615.txt и т.д. 2 буквы формата и дата. Причем дата - почти рандомна. То есть раз в неделю делается что-то типа snapshot'a. Требуется: найти файл за "неделю назад" или ближайший к нему (более ранний, чем неделя). Если ARGV[2] будет равно month, то за "месяц назад" или ближайший к нему. Вот как я сделал (не доделал еще "month"): ==== Hачало 1.pl ==== #!/usr/bin/perl ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon ++; $mon = "0".$mon if $mon<10; $mday = "0".$mday if $mday<10; $mmon=$mon; $mmday=$mday; while ($mmon > "00") { while ($mmday > "00") { $filename = "$format$mmon$mmday.txt"; print "\$filename = $filename\n"; #debug if (!-e ($filename)) { $mmday = $mmday - 1; $mmday = "0".$mmday if $mmday < 10; } else { $lastdtbfile = $filename; print "Found last database file from $mmon.$mmday.\n"; } $mmon = $mmon - 1 if $mmon ne "00"; $mmon = "0".$mmon if $mmon < 10; $mmday = 31; } } ==== Конец 1.pl ==== Проблемы таковы: при нахождении $lastdtbfile не знаю, как лучше выйти из цикла, может быть ввести некий флаг? Да и вообще не работает. :) sort glob, неудобен тем, что, откатываясь на неделю назад или месяц назад, если не окажется такого файла, все равно придется перебирать даты... Вообще посоветуйте, как "идеологически" исправить цикл. :) ActivePerl 5.002, W95. Спасибо. WBR, Armen. --- Xtreme / MtG / Rollerz / SKL * Origin: CONNECT FFFFF/Hиштяк/ВОбеСтороныHиштяк/ВсеПрибамбасы (2:5020/902.83) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/39513bccb3b3.html, оценка из 5, голосов 10
|