Perl
最近Rubyを勉強していて、今日yield文というのに出会った。 忘れないようにメモyield文はこんな感じで書く def foo ( name ) yield('おはよう' + name) yield('おやすみ' + name) end foo( 'sasakure' ) do | message | puts message end 結果はこのように表…
Perlの食えない事情-演算子編を読んで、とても面白く演算子を学ぶ事が出来ました。なかでも「宇宙ステーション演算子:-+-」はなかなか理解出来なかったので、僕なりに解説したいと思います。 その前に「ビーナス演算子:0+,+0」について触れておきます。 pr…
2012年のYAPC::Asiaで紹介されていた素数戦争「10000番目までの素数の和を求める」 というお題をいかに早く算出するか!というものでした。私も参加ダメダメながら参加して楽しんでいました。私の記録はこちらそこで気になっていたのが「殿堂」となっていたd…
先日Perl Beginnersに参加したときにLTで話した Acme::ReplicaというモジュールをCPANにアップしました。コードはCPANかgithubをご参照ください。Acme::Replicaについて 精巧に作られた食品サンプルのように、見た目は本物そっくりですが 実際には食べれない…
2013/01/25 Perl Beginnersに参加してきました。 この勉強会への参加は今回が2度目。 前回はBeginnersセッションというコーナーでガチガチに緊張しながらも登壇し、 「RestAPIを提供するために」という内容で発表と質問をしました。 ひどい発表と質問にも関…
このエントリーを書いたキッカケはこのtogetterです。 実際に書いて調べて、リストと配列は別物であるとか勉強になりました。 なかでもハッシュのキーに「リスト(配列ではない)」を指定した時の動作は面白かったので、私の検証結果をまとめてみました。 ま…
perlで文字コードを扱う時に使用するモジュールといえばEncode.pmですよね。 CPANはこちら SYNOPSISを見ると下記のようにuseしていますね。 use Encode qw(decode encode); $characters = decode('UTF-8', $octets, Encode::FB_CROAK); $octets = encode('UT…
タイトルの通り、初めてCPANにあげてみたので、その備忘録です。 アップロードしたモジュールは前回作ったMojolicousのプラグインです。 プラグインの内容や、そもそもそんなのいらないとか、名前空間へんだよ、などなど、もしお気づきの点などあればご指摘…
perlのスコープは{}ブロック毎に出来ます。 例えばこんな感じ。 my $flg = 1; if ( $flg ) { my $hoge = 'sasakure'; print $hoge; # output「sasakure」 } print $hoge; # Global symbol "$hoge" requires explicit ...<省略> {}ブロック内で宣言されたmy変…
Mojoliciousで開発をしていて、既存のプラグインを使ったり、新規に自分で作ったりすると思いますが そんな自分で作ったプラグインの中には「CPANにあげたい!」と思うものも出てくるんじゃないでしょうか。 僕は今回、Webサイトの他言語対応(国旗の画像をポ…
PerlのフレームワークMojoliciousを使ってみたので、そのメモ。 マシンはMac OS X ちなみに、Mojoliciousはドキュメントが日本語訳されていますよ Home · yuki-kimoto/mojolicious-guides-japanese Wiki · GitHub まずはCPANからインストール $ sudo cpan cp…
今日はMouseX::Types::Path::Classって素敵ですねってはなし。例えば、ログを吐くディレクトリを今まではこうやって用意してた。 package Sasakure; use Mouse; has 'dir' => ( is => 'ro', isa => 'Str', ); __PACKAGE__->meta->make_immutable; no Mouse; …
下記のようなソースがあった。Sasakure.pm package Sasakure; use Mouse; with 'SasaRole'; __PACKAGE__->meta->make_immutable; no Mouse; 1; SasaRole.pm package SasaRole; use Mouse::Role; no Mouse::Role; sub BUILD { my $self = shift; warn "sasaro…
CGI::Application::Dispatchで下記のようにargs_to_newを使うと、 実行するモジュールへの引数が指定出来る。index.cgi #!/usr/bin/perl use strict; use warnings; use CGI::Application::Dispatch; CGI::Application::Dispatch->dispatch( prefix => 'Sasa…
McryptでCBCモードを使う機会があったのでメモ use strict; use warnings; use Mcrypt qw(:ALGORITHMS :MODES); use Digest::MD5 qw(md5_hex); my $FILE_NAME = 'kkkkk.txt'; my $FILE = '/home/sasakure/' . $FILE_NAME; my $td = Mcrypt->new( algorithm =…
Perlにはglobal変数、local変数、my変数があります。私はあんまりlocal変数って使う機会が無くて、なんとなくしか理解していませんでした。my変数が「ブロック内がスコープの変数」というのに対して、local変数は「ブロック内で呼んでる関数なんかスコープに…
お仕事でクロージャーというコーディングの仕方を覚えたのでメモメモ。Perlに限らず利用出来る言語は多い(どうやらPHPもあるらしい、、知らなかった) どんなプログラム言語だって変数を使う場合はスコープ(変数の利用可能な範囲)が決まっています。下記…
Template Tool Kit って便利ですよね。 Perlの仕事をするようになって出会った素晴らしいテンプレートエンジンです。たくさんの方がブログやサイトで利用方法について説明してくれてますので、基本的な事はググればだいたい分かります。それでも僕がハマった…
[CPAN] http://search.cpan.org/~robm/Cache-FastMmap-1.36/FastMmap.pmデータを管理する時にファイルだったり、データベースなんかを使いますよね。Cache::FastMmapは1つのKeyに対して簡単なValueを持つデータを容易に扱う事が出来ます。 中でも私が素敵だ…
List::MoreUtils http://search.cpan.org/~adamk/List-MoreUtils-0.30/lib/List/MoreUtils.pmany、all、none、notallの4つについて、使う時に用途がゴチャゴチャしちゃうので備忘録▼ソースを見るとこうなってる。 sub any (&@) { my $f = shift; foreach ( …
perlでのファイル操作ってどうやるのかなって調べると、下記のようなコーディングで説明されている事があります。 my $file_name = 'test.txt'; open(FILE, $file_name); while(<FILE>) { print; } close FILE;このFILEというのはファイルハンドラと呼ばれます。 </file>…