Hokkaido.pm Casual#4に行ってきました
今回は、pm巡業中の__papix__さんを迎えての開催となりました。
猛暑の中、お集まり頂きありがとうございました。
次回は、9/19を予定しておりますので、よろしくお願いします。
今回のテーマは、「モジュールを作ろう!」と言うことで、
書き捨てスクリプトから一歩進んだ結果、内容が難し過ぎないか心配でした。
聞き慣れないキーワードだったり、いわゆるおまじない(*1)だったり、
初心者向けにどうやって仕上げるのが良いか、結構悩みました。
結果的に、”package”, “Exporter”, “use”, “require”が出てきて、
“use”と”require”どっちを使うといいの?っていう話を、
aloelightさんがライブコーディングを交えてカジュアルに説明してくれたので、
すごく感謝しております。
という訳で、今回のカジュアルだったで賞はaloelightさんに送りたいと思います。
その他にも、関数の戻り値で0を返すけどdieしたくない場合は?という質問があって、
aloelightさんが、defined-or演算子(//)が使えること紹介してくれました。
いつから使えるようになったんだっけ?という質問には、
akiymさんが5.10からとカジュアルに即答する一面も。
use strict; use warnings; use feature qw( say ); sub func { return 0; } # dieされる eval { func() or die 'error message.'; say 'line = ' . __LINE__; }; if ( $@ ) { warn 'catch: ' . $@; # catch: error message. } # dieされない eval { func() // die 'error message.'; say 'line = ' . __LINE__; }; if ( $@ ) { warn 'catch: ' . $@; # catch: error message. } # 出力結果 # catch: error message. at hhh.pl line 12. # line = 23
ちなみに、今回発表に使ったスライドはこちら。
packageについて説明しました。
おしまい。
(*1) モジュールファイルの最後で真を返す必要がある
Leave a Comment