Coping with Scoping by MJDを読む必要があります。
perldoc perlmodも参考になるでしょう。
コードはこの世のものではありません。作者が $author::email をクールだと考えているように見えるというだけで、世界中で何の心配もなく、あらゆる種類の名前空間を踏みにじっています。
より良い方法は、ハッシュを使用することでした:
my %author = (
email => 'author@example.com',
...
);
シンボル テーブル全体を踏みにじる必要はありません。
私はいくつかのWin32::OLE
例を持っています: http://www.unur.com/comp/これらは芸術作品ではありませんが、このスタイルの改善であると信じています. Perl と Word VBA で Word 文書のページ数が異なるのはなぜですか?も参照してください。
私は少し怒鳴るつもりです:
@pgm::runtime_args = @ARGV ;
そのため、名前空間@ARGV
を踏みにじるために標準配列をあきらめます。pgm
それだけでなく、すべての Perl プログラマーは何が何で@ARGV
あるかを知っています。いずれにせよ、@pgm::runtime_args
スクリプトで再び使用されることはありません。
$pgm::maxargs = $#pgm::runtime_args + 1 ;
もちろん@pgm::runtime_args
、スカラー コンテキストでは、その配列の要素数がわかります。なぜ必要なのかはわかり$pgm::maxargs
ませんが、必要な場合、この行は次のようになります。
$pgm::maxargs = @pgm::runtime_args;
これ以上引用するつもりはありません。これは、Cobol プログラマーが Perl を書こうとしたときに起こることだと思います。
$program::copyright = "Copyright (c) 02002 - Kenneth Tomiak : All rights reserved.";
彼が年に 5 桁を割り当ててくれてうれしいです。絶対にわからない!
PS: 私の抜粋はフェアユースにあたると思います。