Perl 5.10で遊ぼう
30分プログラム、その612。5.10で導入された新機能で遊んでみよう。
ふと、手元のマシンにインストールされてるPerlのバージョンを確認したら5.10でした。
たしか、5.10は、use featureすればsayとかの新機能が使えるはずなので、それで遊んでみよう。
ヘッダ
まず、新機能を有効にしよう。あと、ついでにstrictとかも有効にしとこう。
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- use strict; use warnings; use feature qw(switch say state);
switch
# switch my $n = $ARGV[0]; given($n){ when(42){ say 'arg is 42'; } when("hoge"){ say 'arg is hoge'; } };
やっと、switch文が使えるようになったんだ。
構文が複雑で、全部は追えなかった。なんかLispのcond的なこともできるらしいよ。
state
# state sub count(){ state $i; return $i++; } say count; # => 0 say count; # => 1 say count; # => 2
static変数。より正確に言うなら、ローカルなstatic変数。