Perl
この記事はPerl Advent Calendar 202113日目の記事です。 2時間ほど遅刻して申し訳ございません・・・ この記事では Perlで Internals::SvREADONLY を利用しimmutableなデータ構造を作る方法について書きます。 検証は perl5.34.0 で行っています。 immutabl…
概要 Perlで型チェックを行うモジュールに Type::Tiny というものがあります。 Type::Tiny には Types::Standard というライブラリがついてきて、いろいろな型が利用可能になるわけですが、 これはその Types::Standard で利用可能な、個人的に知っていると…
概要 Perlのサブルーチンの引数バリデーションをするモジュールはいろいろありますが、 Function::Parameters が他の引数のバリデーションを行うモジュールと比べて高速にバリデーションできるという話を聞いて、であれば Mouse::Util::TypeConstraints と組…
独自にコンパイルされたperlや自分で少しソースコードをいじったperlもplenvで管理したいなーと思ったのでやってみました。 基本的にrbenvなどと同じようにできるようです。 手順 1. Perlのソースコードを入手する perl - The Perl 5 language interpreter -…
Perlのオブジェクトに $object->DOES('SomeRole') みたいな、ロールを消費したかどうかを判定できる(?)メソッドがあるのですが、それについていろいろ知見を得たのでまとめます。 Perl自体にロールを消費したかどうかを判定する機能はない 特にDOESがオーバ…
こんな感じででできます foreign_key user_id => ( user => 'id', on_delete => 'CASCADE', ): ドキュメントでは foreign_key($columns :(Str|ArrayRef), $foreign_table :Str, $foreign_columns :(Str|ArrayRef) ) という風に明記されていませんが、追加の…
Plack::Middleware::Session と関連することについてのまとめ、ほぼ個人的なメモ 簡単にまとめるつもりだったけど詳しく書くとかなり長くなりそうな気がしてきた... 使い方 use Plack::Builder; builder { enable Session => ( state => Plack::Session::Sta…
この記事は OIT Advent Calendar 2016 - Adventar 8日目の記事です。 軽く自己紹介 冷雨 (@_ybrliiu) | Twitter IN科3年 Perl大好きなことで有名かもしれません。 それより遅刻が多いことで有名ですね 十国志NETっていうオンラインシュミレーションゲームを…
Perlでスタックバックトレースを伴った例外を発生させるにはCarp::confessを使えばいいわけですが、 下のコードのようにException::Tinyを継承したクラスで例外を発生させる時にconfessを使ってもスタックバックトレースが表示されません。 package MyApp::E…
PerlからYoutubeの動画検索しようとした時のメモ、Youtube Data APIの利用の仕方というよりはWeb APIの使い方って感じですが。 準備 Youtube Data API v3はGoogleのアカウントを持っている上で認証しないと使用できないようなので、ドキュメントを参考に準備…