Говорят, что хороший программист может писать Fortran на любом языке. =)» Мы не часто замечаем простые и очевидные вещи, потому что привыкли к многолетнему опыту написания кода на другом языке. Еще одна небольшая зарисовка на тему того, как писать Perl.
Дано: программа и командный интерфейс: создать, удалить, отредактировать. Пользователь пишет команду — программа делает то, что надо.
my $action = shift;
if ( $action eq 'create_node' ) {
# do some...
}
elsif ( $action eq 'edit_node' ) {
# do some more
}
elsif ( $action eq 'delete_node' ) {
# delete some
}
Довольно стандартная ситуация и стандартное решение.
А интрига в том, что на Perl можно написать совсем по-другому:
my $action = shift;
my $do = {
create_node => \&create_node,
edit_node => \&edit_node,
delete_node => \&delete_node,
};
$do->{$action}->();
Вот такое простое решение, которое на 100% Perl-style =)». Ссылки на функции + хеш. В итоге получаем элегантное и расширяемое решение. Ну а у кого фантазия позволяет, может развить мысль дальше ;-)»































02 февраля 2010, 04:54
sub doit { no strict 'refs'; shift()->(); };
sub create_node { print "create$/"; };
sub edit_node { print "edit$/"; };
sub delete_node { print "delete$/" };
02 февраля 2010, 09:52
02 февраля 2010, 10:01
А как это отлаживать?
02 февраля 2010, 14:21
perl -d ;-)
02 февраля 2010, 22:58
я поражён элегантностью
он такой один, этот пёрл?
02 февраля 2010, 23:06
02 февраля 2010, 23:15
02 февраля 2010, 23:19
02 февраля 2010, 23:14
Надо же что то читать кроме PHP за 24 часа.
Вариант dsimonov более перланут.(насколько я понимаю этот их пёрл(а я его вообще не понимаю(но выглядит действительно перлистее)))
Насчёт "элегантности", то да, пёрл единственный такой.
02 февраля 2010, 23:23
Вообще, вариант dsimonov не предполагает передачу в функцию параметров. Хотя, конечно, можно передавать вслед за функцией ее параметры, но это уже будет не айс как с точки зрения практики, так и просто эстетики. =) Ну это дело вкуса, конечно.
> Надо же что то читать кроме PHP за 24 часа.
Бля, меня спалили, срочно читаю «PHP за 48 часов», наверняка она в два раза умнее моей прежней =)))»
02 февраля 2010, 23:25
02 февраля 2010, 23:28
02 февраля 2010, 23:33
02 февраля 2010, 23:34
02 февраля 2010, 23:33