小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

Perlでのシステム関数&サブルーチン呼び出しの書き方

同名(たとえば、time)のシステム関数とサブルーチンをいろいろな呼び出し方でテストをしてみました。

テストソース

print "1---", time,     "\n";
print "2---", time(),   "\n";
print "3---", &time(),  "\n";
print "4---", &time,    "\n";
#print "5---", timex,   "\n";
print "6---", timex(),  "\n";
print "7---", &timex(), "\n";
print "8---", &timex,   "\n";
sub time {
    return "--ローカルtime--";
}
sub timex {
    return "--ローカルtimex--";
}

実行結果

1---1190439953
2---1190439953
3-----ローカルtime--
4-----ローカルtime--
6-----ローカルtimex--
7-----ローカルtimex--
8-----ローカルtimex--

まとめ

  • システム関数は、『&』付きは、NGです。
  • システム関数は、裸のワード(Bareword)はOKですが、括弧付きの方が関数明示となる。
  • サブルーチンは、『&』付きはサブルーチン明示になる。
  • サブルーチンは、裸のワード(Bareword)はNGです。

よって、システム関数は括弧付きが良く、サブルーチンは『&』付きが良いと思います。