Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Sergey                               2:5020/400     24 Dec 2006  17:56:06
 To : All
 Subject : Hет логики ни в чем
 -------------------------------------------------------------------------------- 
 
 Привет.
 
  Кто-нибудь может по-человечески объяснить, как работают операторы \L \l \U \u
 и им подобные? Я ни в книжках, ни в файлах к activeperl этого не нашел. У этих
 операторов есть какая-нибудь ассоциативность и приоритет?
  Берем пример:
 
 print "\L\udD";
 
  \L говорит, что все буквы до конца строки будут маленькими, \u говорит: фиг
 тебе, d сразу после меня все равно будет большой. Есть ли какое-то правило,
 чтобы это определять?
  В результате получается Dd.
  Берем другой пример:
 
 print "\LdD\udD";
 
  \L и \u говорят то же самое, в результате получаем dddd... Маразм? Да!
  По идее, у подобных операторов должна быть правая ассоциативность, но на
 самом деле вообще непонятно, как они работают.
  И почему последовательность "...\L\U..." и обратная ей считаются ошибкой
 синтаксиса? Почему \l\u не считаются?
 
  Стоит попробовать капнУть Перл поглубже, как натыкаешься на что-то гнилое. Я
 уже сюда писал, что код
 
 map{while(1){}}@a;
 
  завешивает транслятор до версии 5.8.5 и на виндовс, и на юникс. Здесь смысл
 не в том, что циклы пустые, а лишь в том, что цикл while стоит внутри цикла
 map.
  Когда я начал выяснять, что послужило причиной зависания моей программы, то у
 меня сложилось впечатление, что я первый, кто начал программировать на Перле.
 Как будто не было 15-летней мировой практики, и я впервые вставил while внутрь
 map.
  В процессе написания несложных программок я наткнулся еще на пару ошибок, но
 вовремя их не зафиксировал и не запомнил.
 
  Hедавно наткнулся на такое описние условного шаблона в документации
 Perl/html/lib/Pod/perlretut.html#conditional_expressions:
 
 Conditional expressions
 
 A conditional expression  is a form of if-then-else statement that allows one
 to choose which patterns are to be matched, based on some condition. There are
 two types of conditional expression: (?(condition)yes-regexp) and
 (?(condition)yes-regexp|no-regexp).
 
  И далее:
 
 The condition can have two forms. The first form is simply an integer in
 parentheses (integer).
 
  Hе должно быть скобок вокруг условия, должно быть (? condition yes-regexp)
 and (? condition yes-regexp|no-regexp)
  А то по этому определению надо писать (?((1))..., а это ошибка синтаксиса.
  Это определение с лишними скобками пошло гулять по справочникам и прочим
 учебникам. Хоть бы кто удосужился его проверить.
 
  Вот так вот, вместо того, чтобы писать лекции, приходится заниматься этой
 бесплатной тратой времени.
  Видимо, на атомных элктростанциях не используют Перл, а то бы все уже
 почувствовали на себе эту самую мощь Перла и его регулярных выражений.
  Есть ли кто-то, кто платит деньги за найденные ошибки в Перле? Я подозреваю,
 что смогу стать миллионером...
 
 Сергей
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hет логики ни в чем   Sergey   24 Dec 2006 17:56:06 
 Hет логики ни в чем   Serge Chervjakov   24 Dec 2006 20:08:38 
 Re: Hет логики ни в чем   Valentin Nechayev   24 Dec 2006 23:03:44 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Ivan Frolkov   25 Dec 2006 00:08:15 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Sergey   25 Dec 2006 18:06:01 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Ivan Frolkov   25 Dec 2006 19:19:40 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Sergey   26 Dec 2006 10:25:34 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Ivan Frolkov   26 Dec 2006 11:58:46 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Sergey   28 Dec 2006 17:33:28 
 Moderatorial [++] (was: Hет логики ни в чем - "доктор, я, наверное, фен   Moderator of RU.PERL   03 Jan 2007 01:32:31 
 Re: Hет логики ни в чем - "доктор, я, наверное, феномен?"   RockMover   26 Dec 2006 09:03:42 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Alexey Zhidkov   26 Dec 2006 20:22:05 
 Hет логики ни в чем - "доктор, я, наверное, феномен?"   Alexey Zhidkov   26 Dec 2006 20:19:22 
 Re: Hет логики ни в чем   Ilya Anfimov   25 Dec 2006 09:05:54 
 Re: Hет логики ни в чем   RockMover   26 Dec 2006 09:04:13 
Архивное /ru.perl/1667916bd4cd8.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional