perl

Exporterでエクスポートされる関数の挙動を変更する

ひょんなところにこんなモジュールがあRuby。 package Hoge; use strict; use warnings; use base qw/Exporter/; our @EXPORT = qw/hoge/; sub hoge { print "Hoge::hoge called\n"; } 1; このHogeモジュールのhoge関数を呼び出すためにこんなコードを書Chro…

ブロック

Perlのブロックってすごいよね. パッと見, 構造っぽいもん. でもevalとかdoとかってブロックが後に続いているだけなんだよね(微妙な認識かも)? @odd_numbers = grep { $_ % 2 } 1..100 となると, 言語自身にtry~catchのような例外の機構を備えていないPerlで…

リストと配列

いまいちリストと配列を分ける意味がわからなかったんだけど, スカラーコンテキストが提供されたときに以下のような違いがあるんだね. $last_value = qw/a b c/; # "c" @values = qw/a b c/; $length = @values; # 3 なんかの役に立つのかなぁ, と思っていた…

自然言語としてのPerl

昨日からプログラミングPerlを読んでいるんだけど, いろいろと味わった気分. まだ1章の中盤だけど.まずコンテキストという概念に感動した. この場合はスカラーを求める(スカラーコンテキスト). またこの場合はリストを求める(リストコンテキスト). たとえ求…

ハッシュの表記方法から閃いたくだらないコト

キーと値の間には","の代わりに"=>"が使える ハッシュを見やすくするため, キーと値の間の","の代わりに"=>"が使える. あくまで見やすくするためで実際はカンマと変わらないとのコト(後述するクォーテーション省略を除けば). my %a = ('x', 1, 'y', 2); my %…