Perl入学式2017 第5回(9/2) サポーターで参加させてもらいました。
ひさびさに
@xtetsuji さんからサポーターで来ていただけませんか? とお誘いをいただいたので、お手伝いさせていただきました。 @sironekotoro さん、@kaz_hiramatsu さんもいらっしゃってました。
FizzBuzzについて
Perl入学式の練習問題の一つに第2回のFizzBuzzをMojoのテンプレートに入れよう。 というのがあります。テンプレート内でのコードの埋め込み方の練習です。 その中で、受講者さんのひとりが
「テンプレート内にコード埋め込むような事って普通やるんですか?」
とおっしゃっていたので、
「そうですね、FizzBuzzの演算のようなものは分離した方が管理しやすいですよね。」
と答えておきました(間違ってたらごめんなさい)。
ということで、以下のようなコードをピザ会の前にお渡ししておきました。
#!/usr/bin/env perl use Mojolicious::Lite; plugin 'PODRenderer'; sub fizzbuzz { my @str=(); for my $i (1..100) { if ($i % 3 == 0 && $i % 5 == 0 ){ push @str,"FizzBuzz"; } elsif( $i % 3 == 0) { push @str,"Fizz"; } elsif( $i % 5 == 0) { push @str, "Buzz"; } else { push @str, "$i"; } } return \@str; }; get '/' => sub { my $c = shift; $c->stash(title => 'FizzBuzz'); $c->stash(fizzbuzz => fizzbuzz()); $c->render(template => 'index'); }; app->start; __DATA__ @@ index.html.ep <!DOCTYPE html> <html> <head><title><%= title %></title></head> <body> % for my $str (@{$fizzbuzz}) { <%= $str%><br> % } </body> </html>
もう少し、スッキリできそうですけど、FizzBuzzの部分は外に出せたかなと思います。
ピザ会
終了後はピザを食べながら、各プログラミング言語の良し悪しを語ってました。 良いなと思ったのは、プログラミング言語の良い所と悪い所をちゃんと評価できていたのは建設的で感じがよかったです。
感想
Perlは久々に書いたので、復習してからいきました。やっぱり書いててたのしいなぁと改めて思いました。 私もPerl入学式の受講者だったのですが、当時よりはコードが読めるようになった?気がします。
また、第5回から参加されていた方もいらっしゃっていたので、 @kaz_hiramatsu さんと@sironekotoro さんがWindowsにMojoliciousを入れる事をされていました。 ここらへんは手練れじゃないとできないなぁと感じつつ、私もまだまだ修行が足りん! と思いました。