Анимация
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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 [ 237 ] 238 239 240 241 242

728 Глава 20 • Автоматизация в Web Пример 20.11 (продолжение)

use HTML Entities qw(decode entities encode entities),

sub text {

my Sself = shift,

my Stext = decode entities(S [0]),

Stext =" s/\QSfrom/Sto/go, # Самая важная строка

Sself->SUPER :text(encode entities(Stext)),

# Now use the class

package main, foreach (@ARGV) {

MyFilter->new->parse file(S ),

20.15. Программа: hrefsub

Программа hrefsub выпол]1яет подстановки в HTML-файлах так, что изменения относятся только к тексту в нолях HREF тегов <А HREF=. ">. Например, если в предыдущем примере scooby.html файл shergold.html был переименован в cards.html, достаточно сказать:

% hrefsub shergold html cards html scooby html <HTML><HEAD><TITLE>Hi!</TITLE></HEAD><BODY> <H1>Welcome to Scooby World!</H1>

I have <A HREF="pictures.html">pictures</A> of the crazy dog

himself. Heres one!<P>

<IMG SRC="scooby.jpg" ALT="GoDd doggyl "><P>

<BLINK>Hes my hero!</BLINK> I would like to meet him some day,

and get my picture taken with him,<P>

P.S. I am deathly ill. <a href="cards.html">Please send

cards</A>.

</BODY></HTML>

В странице руководства HTML::Filter есть раздел BUGS, в котором сказано: «Комментарии в объявлениях удаляются, а затем вставляются в виде отдельных комментариев после объявления. Если включить strict comment(), то ком-ме]1тарии с внутренними "-Х -" делятся на несколько комментариев».

Данная версия hrefsub при выполнении подстановки всегда преобразует <а> и имена атрибутов в теге в нижний регистр. Если строка $foo содержит несколько слов, то текст, передаваемый MyFilter->text, может быть разбит так, что эти слова разделятся и подстановка не сработает. Вероятно, в HTML::Parser следует предусмотреть новый параметр, чтобы текст возвращался лищь после чтения всего сегмента. Кроме того, кое-кто не любит, когда 8-битные символы кодировки Latin-1 замещаются уродливыми эквивалентами, поэтому hrefsub справляется и с oToii проблемой.



Алфавитный указатель

Символы

$, переменная, 184 $+, перемегтая, 184 $/, переменная, 255 $W, переменная, 465 $ , переменная, 490 $1, переменная, 242 %, хэшн, 151 &&, оператор, 32 -, 377,451

.. и операторы, 197 / (корпсвой каталог), 324 :символ, 362 хлужебпые символы, 53 <, 241,253

<&= и <&, режимы открытия, 277 <», 137 152

оператор, 30 >, 92

*, при сохранении манипуляторов,

240, 272 , qx(), 116 , расширение, 46 ", оператор, 560 @ , массив, 349 (I, оператор, 31 1=, оператор, 31

-, расширение в именах файлов, 248

acceptO, 605,609 alarmO, 598

AND, в регулярных выражениях, 216 Apache

mod perl, модуль, 680

журналы, 724 atan2(), 82 atime, поле, 324 autoflushO, 265 AUTOLOAD, механизм, 371 AutoLoader, модуль, 428

В-деревья, 506

basename(), 342

Berkeley DB, библиотека, 498

bindO, 605 binmodeO, 307 blessO, 450,473

С, иаписаппе модулей, 436

cacheoutO, 275

callerO, 355

can(), 470

Carp, модуль, 430

cbreak, режим, 530

ceilO, 72

CGI, программирование

методы HTTP, 671

MHOi-остраничиые сценарии, 693

обине сведения, 667 CGI.pm, модуль, 667 ССГ.-.Сагр, модуль, 672 clir(), 34

Class::Struct, модуль, 464 cIoscO, 241 closedirO, 327 cmp(), 138

со1ог() (Term::ANSIColor), 529 coloredO (Tcrm::ANSIColor), 529 Common Log Format, стандарт, 722 confessO, 430 Config, модуль, 586 copyO, 330 cos(), 82 CPAN

обпи-ю сведения, 410

построение и установка модулей, 442 сгоак(), 430 ctime, поле, 324 Curses, модуль, 538 Cwd, модуль, 429 c6opica мусора, 449

Data::Dumper, модуль, 397 DatcCaIcO, 110 Day of week(), 103 Day of Yearwcek(), 103 DBD, модуль, 515 DBI, модуль, 515 DBM, библиотеки, 497



DBM, файлы

блокировка, 504

преобразование, 502

сортировка, 506

хранение сложных данных, 511 dbmcloseO, 499 dbmopen(), 499 dclone(), 398 deleteO, 156 die, функция, 364 dirnameO, 342 DNS, поиск, 644 do(), 314

eachO, 167 eval(), 413 exec(), 557,682 existsO, 154 Expect, модуль, 540 Exporter, модуль, 406

fcntlO, 264,361 fdopen()(IO::HandIe), 277 FETCHO, 488 FIFO, 581

Fi!e::Basename, модуль, 342 File::Copy, модуль, 330 Fi!e::Find, модуль, 336 File::KGlob, модуль, 335 Filer.LockDir, модуль, 280 Filc::stat, модуль, 299 FileCache, модуль, 275 FileHandler, модуль, 240 fileparseO, 342 FindBinQ, модуль, 422 finddepthO, 339 flocl<(), 262,283 floorO, 72 foreachO, 134 forl<()

закрытие сокета, 626

зомби, 594

перазветвляющие серверы, 629 общие сведения, 557, 573, 682 разветвляющие серверы, 625 FTP, клиенты, 647

GET, метод, 671 get(LWP;:Simple), 704

gethostbyaddrO, 620 gcthostbyname(), 621 getopt()(Gctopt:;Std), 523 GctOptions()(Getopt:-.Long), 524 getopts()(Getopt::Std), 524 getsockopt(), 633 GetTerminalSizeO, 528 gmtime(), 95 grepO, 135

h2ph, утилита, 434

ii2xs, утилита, 425

HEAD, метод, 668

head()(LWP::Simple), 714

hex(), 87

hiddenO, 694

HotKcy, модуль, 533

HTML, формы, 669

HTML::ForinatText, модуль, 711 HTML::LinkExtor, модуль, 708 HTML::TrecBuilder, модуль, 711

If-Modified-Since, заголовок, 720 inet ntoa(), 610 into, 72

IO::File, модуль, 240, 243 IO::Pty, модуль, 541 IO;;Select, модуль, 268 IO::Socket, модуль, 604, 614 IO::Stty, модуль, 541 ioctlO, 270,361 IPC;:0pen2, модуль, 571 IPC.:0pen3, модуль, 573 IPC::Siiareable, модуль, 584 isa()(UNIVERSAL), 471

keys(), 156, 158, 168 kill, команда, 587

lastO, 134 lc(), 43 IcfirstO, 44 Lingua::EN, 90 listenO, 605 localO, 366 iocaltime(), 95 Logfile::Apache, 725



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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 [ 237 ] 238 239 240 241 242