Perlのsplit()の罠

ちょとはまってしまったのだが、splitって

$str = "aaa\nbbb\n\n\n";
@lines = split /\n/, $str;

ってやると、@linesには「aaa」と「bbb」しか入らなくて空白はなくなっちゃうんですね。

もし空白も@linesにいれたかったら、splitの第3引数に-1をいれればいける。

正直、初めて知りましたorz

UNIVERSAL::canとは?

いつも忘れるのでメモ。

UNIVERSAL::canは、あるクラスでcan()を定義していた場合にUNIVERSAL::can( $instance, 'foo' )とやっても組み込みの UNIVERSAL::canではなく、そのクラスで定義されたcan()が呼ばれるようにするもの。


具体的には下記のようにmainでUNIVERSAL::can()を読んでも、組み込みのUNIVERSAL::can()ではなく、クラスBのcan()が呼ばれます。

package A;

sub new { bless {}, shift }
sub foo { warn "foo" }

package B;
use base qw(A);

sub can {
    warn "B's can called";
    return;
}

package main;
use UNIVERSAL::can;

my $b = B->new;
unless ( UNIVERSAL::can($b, 'foo') ) {
    warn "B cannot have foo().";
}

記事を読んで思ったこと

http://www.defermat.com/journal/2008/000355.php

これ読んでて思ったことを書いておく。

米国の会社がどうか知らないけど、日本の会社の多くはWebを金儲けの手段の1つとして利用することを第一に考えてるような気がする。

なんでこう思ったかと言うと↑の記事の最後に『「新潮」の対談をリンクできないのがもどかしい』って書いてあって、日本の雑誌社などはこういうのは本で買って読んで欲しいと思うからネットでなんで無料で見せなきゃならないんだという考えがどこかにあるんだろうな。

まぁ、それ自体は企業として当たり前かもしれないが、そこで議論の1つとなりうるなにかがあったらネットで無料で閲覧可能として、それを元に次の*何か*が生まれるための動きをしてもいいんじゃないかなと思う。

日本のネットが進まない要因の1つは、この金を生まないことに対するネガティブな意識なんじゃないかと思った。

ぜんぜんまとまってないけど、そんな感じのことを思いました。

勘違い

とくになにがってわけじゃないんだけど、周りから実力以上に見られるのって自分にとっても周りにとってもマズーだなぁとときどき思います。

どうしたらそれをなくせるかというと、一つには無理して見栄を張らないということ。
本当はよくわかってないのにわかってる風にするとどんどんどつぼにはまる。

ただ稀にそれを糧にして成長する人もいるけど、無理してたりするのが見え見えだとアレですな。

あと逆に自分が仕事をまかされるものだから、自分はできるもんだと勘違いするのも怖いっす。

常に精進ですな。