Article View: pl.comp.os.linux.programowanie
Article #72366Re: per cgi i for wewnatrz function-oriented
From: Adam Osuchowski
Date: Sun, 16 Oct 2011 13:53
Date: Sun, 16 Oct 2011 13:53
45 lines
3235 bytes
3235 bytes
Stachu 'Dozzie' K. wrote:
> Proponuję zapoznać się z funkcją map{}, a nie prezentować takie
> paskudztwo.
Paskudztwo? Może i paskudztwo, jak cały Perl, ale to ma działać, a nie ładnie
wyglądać. Jak lubisz kod rodem z galerii sztuki to pisz w Pythonie.
> Proponuję też zapoznać się bliżej z funkcją local, bo wstawiona tu jest
> nadużyciem.
Po pierwsze, skoro już jesteś takim purystą językowym i wytykasz innym nawet
najmniejsze niejednoznaczności, to wiedz, że local w Perlu nie jest funkcją.
Poczytaj o tym, co to są słowa kluczowe i operatory w językach programowania
oraz czym różnią się od funkcji.
Po drugie, nie, nie jest to nadużycie. Jeśli nie rozumiesz po co jest tu
local to również odsyłam do dokumentacji.
> No i warto wiedzieć, że ten eval{} może prowadzić do błędów trudnych do
> wychwycenia, gdyby z jakiegoś powodu td(), push() albo cokolwiek innego
> w tym bloku wywołało die().
No to spróbuj zrobić bez evala lub funkcji jakiś generator bardziej
skomplikowany niż proste przemapowanie. Chociażby taki, który by pozwalał
na przerwanie sterowania w dowolnym momencie albo warunkowe wstawianie
elementów. Życzę powodzenia. To, że w tym przypadku map też by zadziałał
nie oznacza, że eval nie zadziała, pomijając fakt, że ma większe możliwości.
Poza tym daję osobie zgłaszającej problem rozwiązanie ogólne, a nie
ograniczone, działające tylko dla konkretnych sytuacji.
> Ogólnie evala należy unikać, dopóki nie wie się dokładnie co się robi
Ale ja wiem co robię i użyłem go świadomie. Jeżeli masz problemy
z opanowaniem takich konstrukcji i przerasta Cię obsługa błędów w evalu,
to ponownie zaproponuję Ci Pythona. Jest zdecydowanie prostszy i ładniejszy
więc z pewnością unikniesz ,,błędów trudnych do wychwycenia'' i nie będzie
to wyglądało jak ,,paskudztwo''. Albo może zaproponuj developerom Perla
usunięcie evala z języka bo przecież kto jak kto, ale Ty nie możesz się
mylić.
Dyskusje o szkodliwości evala śmieszą mnie tak samo jak te o szkodliwości
goto. Akademiccy teoretycy, którzy z inżynierią mają niewiele wspólnego,
a w życiu nie napisali większego kawałka kodu, który miałby praktyczne
zastosowanie, wyciągają argumenty typu ,,nie wolno używać noża bo się można
skaleczyć''.
Technical Details
Message-ID:
<20111016135337.6b8b4567@polsl.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mailReferences:
<j79q4p$c7c$1@pippin.nask.net.pl> <20111015112917.6b8b4567@polsl.pl> <slrnj9k088.7mn.dozzie@jarowit.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mail From: Adam Osuchowski <someone@somewhere.com> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: per cgi i for wewnatrz function-oriented Date: Sun, 16 Oct 2011 13:53:37 +0000 (UTC) Organization: Politechnika Slaska, Gliwice Lines: 45 Message-ID: <20111016135337.6b8b4567@polsl.pl> References: <j79q4p$c7c$1@pippin.nask.net.pl> <20111015112917.6b8b4567@polsl.pl> <slrnj9k088.7mn.dozzie@jarowit.net> NNTP-Posting-Host: hydra.ck.polsl.pl Mime-Version: 1.0 X-Trace: polsl.pl 1318773217 17542 2a01:1d8:1:1::11 (16 Oct 2011 13:53:37 GMT) X-Complaints-To: news@polsl.pl NNTP-Posting-Date: Sun, 16 Oct 2011 13:53:37 +0000 (UTC) In-Reply-To: <slrnj9k088.7mn.dozzie@jarowit.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit