Глава 1: Введение.
1.5. Прогулка по стране Perl
1.5.10. Как обеспечить скромный уровень безопасности
"Этот список секретных слов должен меняться минимум раз в неделю!", — требует Главный Директор Списков Секретных Слов. Мы не можем, конечно, заставить пользователей еженедельно менять пароли, но должны хотя бы предупреждать их о том, что список секретных слов не изменялся в течение семи дней и более.
лучше всего делать это в подпрограмме init_words(); мы уже работаем в ней с файлом wordlist. Perl-операциям возвращает значение, равное количеству дней, прошедшему с момента изменения файла или дескриптора файла, поэтому нам нужно просто посмотреть, превышает ли это значение число семь для дескриптора файла wordslist:
sub init_words {
open (WORDSLIST, "wordslist") || die "can't open wordlist: $!";
if (- М WORDSLIST >= 7.0) { # в соответствии с бюрократическими правилами
die "Sorry, the wordslist is older than seven days. ";
}
while ($name = <WORDSLIST) {
chomp ($name);
$word = <WORDSLIST>;
chomp ($word);
$words($name} = $word;
}
close (WORDSLIST) || die "couldn't close wordlist: $!";
Значение -м wordslist сравнивается со значением 7. Если оно больше, то мы, выходит, нарушили правила. Здесь мы видим новую операцию, операцию die, которая одним махом выводит сообщение на экран* и прерывает программу.
Остальная часть программы изменений не претерпевает, поэтому в целях экономии бумаги мы ее повторять не будем.
Помимо определения "возраста" файла мы можем узнать имя его владельца, размер, время последнего доступа к нему и все остальные сведения, хранимые системой о каждом файле. Более подробно об этом написано в главе 10.
* Если точнее, то в дескриптор файла stderr, но обычно это и означает терминал.
Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание подраздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|