大文字・小文字変換

package TestHoge;
sub new {
  my $class = shift;
  my $self = bless{}, $class;
  return $self;
}

sub hoge {
  my $self = shift;
  print "aaaa";
}

sub AUTOLOAD {
  my $self = shift;
  print "bbbb";
}

package main;
use TestHoge;

my $test = new TestHoge();

$test->hoge; #=> aaaa

$test->nuko; #=> bbbb

AUTOLOADは、クラス内のサブルーチンを参照しようとして見つからなかった場合に呼び出されるサブルーチン…って定義であってるかな。
最近ようやくAUTOLOADについて知りました。
本当にPerlは奥が深い…というか、単純に僕が詳しくなさ過ぎるだけなのですが。



my $hoge = 'abcdefg';
print uc($hoge); #=> Abcdefg
print ucfirst($hoge); #=> ABCDEFG

my $hoge2 = 'ABCDEFG';
print lc($hoge); #=> aBCDEFG
print lcfirst($hoge); #=> abcdefg

大文字小文字の変換。
こんな便利な関数があったのね…。


あと、eval関数がeval()とeval{}で評価方法が違うことをしってびっくりしたw