|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 20 Nov 2000 16:16:28 To : Roman Sergeev Subject : Re: Раз`ясните плиз -------------------------------------------------------------------------------- <Roman_Sergeev@f5.n5009.z2.fidonet.org> wrote: RS> Сразу признаюсь, что спец из меня не очень. RS> Ковыряю значит я один модуль (ибо тесты обламываются) и RS> наталкиваюсь на след. строки: RS> 1. sub extract_addrs { RS> my $str = shift; RS> my @addr; RS> $str =~ s/\s/ /g; ### collapse whitespace RS> ^^^^^^^^^^^^^^^^^ Эта конструкция заменяет пробел на пробел. Hет? Hет. Пробел, табуляцию, перевод строки, и все остальное, что с точки зрения текущей локали, whitespace, на пробел. Впрочем, обычно в таких ситуациях пишут $str =~ s/\s+/ /g; - заменить все последовательности любых whitespace на один пробел каждую. Именно это в норме и означает "collapse whitespace". RS> если сделать $str =~ s/\s//g; то все нормально RS> 2. Далее по тексту находится такая конструкция: RS> $res =~ tr|` -_|AA-Za-z0-9+/|; RS> Что она делает? Точнее как происходит замена и что на что меняется? ` на A, символы с пробела по _ по таблице ASCII на соответствующие из последовательности A, ..., Z, a, ..., z, 0, ..., 9, +, / (тоже по ASCII). Вернее, не по ASCII, а по текущей кодовой таблице, просто другие сейчас мало у кого. -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/17121dc882333.html, оценка из 5, голосов 10
|