sironekotoroの日記

Perl と Mac の初心者の備忘録

Perl入学式 2019 in東京 第3回 お疲れ様でした

受講された方、サポーターの方、大雨の中お疲れ様でした。
講師をやったジャージの人です。

Perl入学式第3回となります。今回はカリキュラム改定に伴う進捗調整のため、前半を第1回、第2回の復習にあて、後半で正規表現を学びました。

講義に利用したスライドはMarkdown形式で公開しています。復習に使ってください。

github.com

問題の意味がわからない、とか、このような解答例はどうだろう?という方はSlackのPerl入学式チャンネル(招待フォーム)やtwitterハッシュタグ #Perl入学式 をつけて聞いてみてください。
応答速度、監視頻度などの面からSlackの方をお勧めします。

講義中のネタについて

Perlcon 2019

東欧にあるラトビアの首都・リガでPerlCon2019が開催されます。

Perl入学式の初代校長のpapixさん、Perl入学式 沖縄のAnaTofuZさんが登壇します。すごい!

perlcon.eu

perlcon.eu

講義中に使ったスライド

自作のスライドです。

特に、最後のページにある EverythingWindowsマシン使うなら必須のソフトだと思っています。CUIはまだ抵抗がある、という方にも優しいGUIのソフトです。ぜひ使ってみてください。

docs.google.com

お仕事での正規表現

最近の仕事で使った正規表現はこんな感じです。

# qwショートカットを利用
my @urls = qw(
    http://perl.example.com/sironekotoro.png
    http://perl.example.com/sironekotoro.html
    http://perl.example.com/cat.jpg
    http://perl.example.com/cat.doc
    http://perl.example.com/kuroneko.gif
    http://perl.example.com/kuroneko.js
);

for my $url (@urls) {
    if ( $url =~ /^http:.*[gif|jpg|png]$/ ) {
        $url =~ s/^http/https/;
    }
    print $url . "\n";
}

ピザ会のお題

Perl入学式 in東京 では講義終了後、希望者で集まりピザ会と称した懇親会を行っています。
(ジュース・ピザ代は実費)
昨年からそこで余興として xtetsuji さんが課題を出し、そこにチャレンジャーが回答して公開する、というようなことをやってます。

xtetsujiさんからのお題ですが、今回は「0〜99までの数字を漢数字を受け取ってアラビア数字にする」でした。

問題のレギュレーションはそのうちxtetsujiさんから公開されるはずですが、入力として与えられる文字列は以下です。

一 二 十 十一 三四 二十一 三十四 三十 三〇

これらの文字列を

1 2 10 11 34 21 34 30 30

に変換するスクリプトを作成します。

うちの回答は「ハッシュテーブルを使ったもの」「正規表現を使ったもの」の折衷型だったので、これを分離して2つのスクリプトに分けて掲載します。いずれも第3回までで習った内容のみで書いています。

あわせて、Perl入学式での範囲にない関数や正規表現を使ったものを「漢数字をアラビア数字にする(Perl入学式でやっていないところ)」として追加で載せておきます。

次回のPerl入学式

次回のPerl入学式 in東京は7月の開催を予定しています。

Perlを学ぶ初心者の鬼門、リファレンスをやります!時間があればHTML入学式もやるかもしれません・・・

皆さんの受講をお待ちしております!