|
Модераторы: korob2001, ginnie |
|
Гость_Alex |
|
|||
Unregistered |
наконец-то нашел хороший форум по cgi и решил запостить свой первый вопрос
изучать перл начал только недавно, так что вопросов много. соббсно вопрос: в форме подписки человек вводит свое имя русскими буквами, подскажите плиз строчку, заменяющий все буквы на строчные, а начальную букву имени на заглавную. заранее спасибо. |
|||
|
||||
Secandr |
|
|||
Связист Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
Попробуй lc
Ещё может понадобиться указать локаль: use locale |
|||
|
||||
<YURIC> |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 14.1.2003 Репутация: нет Всего: нет |
Результат:
|
||||
|
|||||
korob2001 |
|
||||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Можно так же воспользоваться эскейп последовательностями.
Например:
\L - переводит все последующие символы в нижний регистр \u - переводит следующий один сивол в верхний регистр Здесь у вас может возникнуть резонный и вполне логичный вопрос: Что нужно сделать, чтобы ограничить последовательность \L в определённом месте строки, то есть чтобы она не распространялась на всю строку/список? Например есть две переменные $name и $pass как показано ниже:
Что же произошло? В приведённом выше коде последовательности \u и \L сделали своё дело. Сначала последовательность \L перевела все символы в нижний регистр вместе с переменной $pass, затем подключилась последовательность \u и мы получили следующую строку: Денис izo2ter1 Угу, но ведь пароль должен оставаться паролем. Тут приходит на помощь ещё одна управляющая последовательность \E. Приведу пример не верного кода, указанного выше с устранённой проблемой:
\E - служит ограничителем для таких последовательностей как \L, \U, \Q И так, что мы имеем? Последовательности \u\L как и в примере выше делают своё дело, но так как последовательность \L распространяется на все последующие за ней символы, нам нужно её остановить там, где нужно (в нашем случае, сразу после переменной $name). \L начинает переводить символы один за другим в нижний регистр, сремительно продвигаясь к концу строки ;), но, когда она встречает \E, нашей проказнице \L ничего не остаётся, кроме как обломаться, что она и делает. Все остальные символы строки остаются в том регистре, в каком были раньше. Внимание!!! Если управляющие последовательности расположены друг за другом, в нашем случае это \u\L, то сначала включается последняя, то есть \L, а только потом включается \u. И так далее. Гы-гы, во я выдал! ;) Это сообщение отредактировал(а) korob2001 - 29.1.2004, 22:55 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
Гость_ALex |
|
|||
Unregistered |
даа, целый трактат !
спасибо всем за быстрые ответы. сейчас буду экспериментировать |
|||
|
||||
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |