Perlでサブルーチンを文字列で呼び出す

以下のような感じ。

sub hoge [
  print "hello";
}

my $sub_name = "hoge";

# 名前空間なしのサブルーチン呼び出し
&{\&{$sub_name}}();

package Hoge;
sub _hoge {
  print "hello2";
}
sub hoge {
  my $class = shift;
  $class->_hoge();
}

# 名前空間ありのサブルーチン呼び出し
Hoge->$sub_name();