Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ 17 ] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103

return 1; # возвращаемое значение - true } elsif {($words($somename) "groucho") eq $someguess) (

return 1; # возвращаемое значение - true ) else (

open MAIL, "I mail YOUR ADDRESS HERE";

print MAIL "bad news: Ssomename guessed $someguessXn"; close MAIL;

return 0; # возвращаемое значение - false

Теперь - листер секретных слов:

#/usr/bin/perl

while ($filename = <*.secret>) (

open (WORDSLIST, $filename)

die "cant open $ filename: $";

if (-M WORDSLIST < 7) (

while {$name = <W0RDSLIST>) { chomp {$name); $word = <WORDSLIST> ; chomp ($word) ;

write; # вызвать format STDOUT в STDOUT

close (WORDSLIST);

format STDOUT =

(?<<<<<<<<<<<<<<< (a<<<<<<<<< (a<<<<<<<<«< ? filename, $name, $word

format STD0UT T0P =

Page @« $

Filename Name Word

И, наконец, программа выдачи времени последнего правильного ввода пароля:

#I/usr/bin/perl

dbmopen (%last good, "lastdb", 0666); foreach $name (sort keys %last good) ( $when = $last good {$name);

$hours = (time - $when) / 3600; # вычислить истекшее время в часах write;

format STDOUT =

User (?<<«<<<<<<<: last correct guess was (?<<< hours ago.

$name, $hours



Добавьте к этим программам списки секретных слов (файлы с именами что-то.secret, находящиеся в текущем каталоге) и базу данных lastdb. dir и lastdb .рад, И у вас будет все, что нужно.

Упражнение

Большинство глав завершаются упражнениями, ответы к которым даются в приложении А. Для этой главы ответы уже были даны выше.

1. Наберите программы-примеры и заставьте их работать. (Вам понадобится создать списки секретных слов.) Если потребуется помощь - обратитесь к местному Perl-rypy.



в этой главе:

• Что пщше скалярные данные "Ш Числа "

• Строки

• Скалярные операции

• Скалярные переменные

• Скалярные операции и функции

• <STDIN> как скалярное яначение

• Вывод с помощью функции print

• Значение undef

• Упражнения


Скалярные данные

Что такое скалярные данные

Скаляр - это простейший вид данных, которыми манипулирует Perl. Скаляр - это либо число (допустим, 4 или 3.25е20), либо строка символов (например, hello или Gettysburg Address). Хотя в обш;ем-то числа и строки - это совершенно разные вещи, в Perl они используются практически как взаимозаменяемые понятия, поэтому мы опишем их в одной главе.

Над скалярной величиной можно производить операции (например, суммирование или конкатенацию), полученный результат, как правило, также является скаляром. Скалярную величину можно сохранять в скалярной переменной. Скаляры можно читать из файлов и с устройств, а также записывать в файлы и на устройства.

Числа

Хотя скаляр - это либо число, либо строка*, в данный момент нам будет полезно рассмотреть их отдельно. Итак, сначала числа, а через минуту - строки.

В Perl для всех чисел используется один и тот же внутренний формат

Как станет ясно из нескольких следующих абзацев, можно задавать и целые (чисто числовые значения, например 17 или 342), и числа с плавающей запятой (действительные числа, например 3,14 или 1,35, умноженное на 10). При этом

* Или ссылка, но это более сложная тема



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ 17 ] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103