さんざん苦労した挙げ句、SSHD for NTをcygwinインストール後に入れたら普通に使えるようになった。ちゃんと bash が起動するし、scp も使える。
cmd.exe が起動した覚えがあるんだけどな。よくわからん。
perl の話。
my $class = shift;
bless { key1 => "default1",
key2 => "default2",
@_ }, $class;
は楽だけど、ユーザが指定したキーを全て受け入れてしまう。それはやっぱり気持ちが悪い。とすると、
sub new {
my $class = shift;
my $self = {};
bless $self, ref($class) || $class;
$self->_init(@_);
$self;
}
sub _init {
my $self = shift;
$self->can("SUPER::_init") && $self->SUPER::_init(@_);
my %args = ( @_ );
my %param = (
aaa => 111,
bbb => 222,
ccc => 333,
ddd => 444,
);
@param{keys %param} = map {
exists $args{$_} ? $args{$_} : $param{$_}
} keys %param;
%{$self} = ( %{$self}, %param);
}
汎用的なコンストラクタはこんな感じか? うー。いまいちだな。