新機能だらけのPerlは異様

うーん、やはり中間クラスの効果は絶大ですね。本当に開発しやすそうです。
まだコントロールの作り方の記事書いてないな。
System.ComponentModel.Componentを継承するだけなんだけど、
まぁそれじゃ何のことかわからんしねぇ。


以前から気になってた、Perl 5.10の新機能の話。
最新のActivePerlを使ってると、もう5.10になってます。perl -vで確認できますね。
ActivePerlにせよ、Linuxでのperlにしても、全部同じperlなんだよね。
何でもバージョンはperl -vで確かめられるし、バージョンの意味もどれでも同じ。
さて、しかしどういうわけか5.10の新機能はそのままでは使えない。

use feature ':5.10';

ものぐさな人はこれだけ書けば新機能が全部使えます。
自作perlshにこの1行を適当に加えてみると、簡単に試せますね。
さて、もっとも大きいかもしれないのが、sayですね。

say $foo;
print $foo,"\n";

sayは改行付きのprintです。今までなかったんですよ。
まぁこういうことです。今まで別に入れてた改行を考えなくてよろしいと。
しかし、sayですか…なんというかPerlというのは紛らわしい名前が多いものでして。


あと、以前何も考えずに使ってた5.10の新機能。//演算子ですね。
$1//$2とすると、$1がundefでなければ$1、undefならば$2というようなことができると。
非常に便利なものです。
そういえばC#にも??演算子という、a??bとするときa!=nullならばa、違えばbとなる演算子があるはず。
まぁあまり使い道はなかったのかな。使ったことないや。


あと、Perl式switch構文、given~when、foreach~when構文。
見てたけど仕組みはさほど難しくないですね。

while(1){
given(<>){
s/\n$//;
when(m/([0-9]+)/){ say 'catchnum:',$1; }
when('foo'){ say 'fooooooooo!'; }
default { say 'cannot catch!'; last; }
}
}

さて、givenで与えて、whenにあてはまるかどうかという話です。
さて、いろいろ見てたのだが、どうもgivenで与えたものは、$_に入るらしい。
それでwhenの中身を評価してTrueだったり、’foo’みたいに値が入ってたらそれと比較すると。
まぁそれだけの仕組みです。だから一番始めにs/\n$//という処理を書いたときうまく動くんですね。
$_ =~ s/\n$//;って意味ですからね。なかなかよくできている。
given~whenだけでなく、foreach~whenという使い方もあると。これは便利じゃないですか?

foreach(2..100){
when($_%2==0){ say "偶数 :$_"; }
when($_%3==0){ say "3の倍数 :$_"; }
when($_%5==0){ say "5の倍数 :$_"; }
when($_%7==0){ say "7の倍数 :$_"; }
default { say "素敵な数:$_"; }
}

まぁこんな風にかなり不気味なこともできます。
普通はこういうのはif~elsif~elseで書くと思うのですが、なかなかありがたい構文ですね。
ただ、現状ではこういう表記ができないのは少し残念。

say "7の倍数 :$_" when($_%7==0);

なんか英語の文章みたいですね。
when修飾子はまだないと。
しかし多くの人にとってはわかりにくい表現なのでない方が平和ですかね?


まぁ他にもいろいろあるんだけどね。
あるところの記事を読むとPerl 6の先行公開みたいな、そういうような意味合いもあるそうです。
~~演算子というのが追加されたのだが、これはスマートマッチ演算子らしい。
==とeqの使い分け、リストの各要素とのマッチとか、そういう賢い演算子らしい。
これはPerl 6で導入されるものの1つらしい。もしかすると比較演算子は~~ですと言われる時代がくるかも。
しかしこんなものでは言えないぐらい、Perl 6になるとかなり変わるんですけどね。
非常によくつかう文字列の.での結合は廃止になるし。.はオブジェクト指向で使われるみたい。
あまりの変化にPerl 6に移行しない人がどれほどいることか。
あと、Perl 6なのだが、Parrot上で動作させる都合なかなか難しい。
なんというかとんでもない大改造になることは目に見えてるというわけですね。
Perlってむちゃくちゃですねという感想でいいと思いますよ。

10月1日に変わることは多いので一部列挙

基本情報技術者試験の受験票が届いた。
試験会場はどうも聞いてたとおりだった。
受験地は選べるんだけど、受験地って都市の名前なんだよね。例えば、四日市とか。
で、実際の試験場はわからないと。そういう風になってます。
まぁしかし、小規模な受験地、どうも会場は1箇所っぽいのである程度見当は付いてたんだけどね。
勉強せんとなぁ。
あと、写真貼らんといかんから写真を撮らないと。寸法調べて箱で撮ればよろしい。


さて、10月1日というのはどうもいろいろ変わるものです。
今日、新聞に、株式会社商工組合中央金庫ができますよとか。
なんのことかというと、政策金融機関の多くが今日一斉に株式会社に変わったと。
日本政策投資銀行、日本政策金融公庫、商工組合中央金庫という3つだと。
国の手先としてお金を貸してやる会社で、まぁそれぞれいろいろな目標でやってると。
一番わかりやすいのが、住宅金融支援機構ですよね。これは住宅ローンを貸す銀行のお手伝いをしてるわけで。
まぁそういうのがとりあえず会社になりましたよということです。
あと、国関係だと、全国健康保険協会というのができたそうです。
サラリーマンとかとその家族の健康保険を提供するところです。
といっても、大きな会社だと自分で健康保険組合持ってるけどね。小さいところのね。
今までは国直営だったのだけどね。今後地域によって保険料が変わるよとか。


それよりもインパクトがあったのが、
松下電器産業から社名変更してパナソニック株式会社が出来たと。
いやー、ネタじゃなかったんですね。
しかし通り道にPanasonicの店ないので実際どうなったかよくわからないですね。
あと、JVC・ケンウッド・ホールディングスという会社ができましたと。
日本ビクターとケンウッドが共同で持ち株会社を作ったという話です。
いや、どうなるんでしょうか。
それと、阪急百貨店、阪神百貨店が完全に統一されて、阪急阪神百貨店となると。
まぁなんというかすごい名前ですねぇ。
ちなみに店の名前は今まで通りだと。「阪急阪神百貨店」って看板だったら怖いからね。


まぁこんなに物事変わるといろいろありますね。
そういえば、去年の10月1日は、日本郵政公社の会社化が行われたと。
まぁえらい変わりましたねぇ。
郵便局は今までとさほど見た目変わらないし、郵便も対して変わらん。かんぽは知らん。
何が変わったって、ゆうちょ銀行ですよね。手数料が軒並み変更。方針もかなり変更されたと。
まぁそれでも貯金は貯金だし、なかなか変な感じです。
けどあれは元々がひどかったと考えるべきだけど。
郵便貯金法と郵便振替法という法律の特例がすごすぎたんだよね。
まぁいろいろ勉強しているそうで、そのうち副印鑑廃止するとか聞きますけどね。
今日いろいろありましたけど、どうなるかは知りません。けどがんばっていただきたいなと言うしかないでしょう。