|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 08 Oct 2002 18:02:33 To : "Michael Spector" Subject : Re: где ошибка? -------------------------------------------------------------------------------- Здравствуй, Michael Spector. DS>>>> welcome to hell, Hаpод _/:/_) DS>>>> unlink("$dst/$_") foreach(@modules) if (lc($ARGV[1]) eq '-d'); MS>>> Skazhi, zachem tak izvrashatsya ? Ili vy prohodite konkurs na samuju MS>>> korotkuju programmu ? AC>> Естественное навешивание if на короткую команду. А что она при этом сама AC>> цикл, ну и что? Другое дело, что синтаксис именно такого фокуса не AC>> позволяет. MS> А зачем такой изврат ? Просто обьясните, а то я не понимаю :( MS> Мне кажется понятней так: MS> if(lc($ARGV[1]) eq '-d'){ MS> foreach $module (@modules){ MS> unlink("$dst/$module"); MS> } MS> } Разница между "если будет дождь, то мы туда не пойдем" и "мы туда не пойдем, если будет дождь". Просто для цикла с телом и условием по два десятка символов городить блок на три строки - только код загромождать. Другое дело, что когда к этому добавляется еще if с условием на два десятка символов, то в одну строчку это будет громоздко. Да и естественный язык, по которому моделировались эти постфиксные операторы, таких фокусов не очень позволяет ("мы будем ходить вокруг дома, пока не откроют дверь, если будет дождь"). Поэтому подобный код оптимально было бы писать if (lc($ARGV[1]) eq '-d') { unlink("$dst/$module") foreach $module (@modules); } ("если будет дождь, то мы будем ходить вокруг дома, пока не откроют дверь"). -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/144546c488b80.html, оценка из 5, голосов 10
|