あなたはそれを呼び出すことができます
::bla( \@foo, \%bar );
以前は、ユーティリティ関数をUt
パッケージに入れていました。それは問題ありませんでしたが、コードが思ったほどモジュール化されていないことに気付きました。そこにある関数に依存する各モジュールUt
は、誰かがその名前空間を構築するのに苦労した場合にのみ成功する可能性があります。
最終的に、use
andrequire
ステートメントは単に依存関係を文書化するものであると考えました。main での実装を変更するよりも、ライブラリ モジュールによって呼び出されるコードを変更するより柔軟な方法があります。
たとえば、これを 1 つのuse
ステートメントで行うことができます。
use Ut blah => sub {
use Carp;
use Data::Dumper;
carp Dumper @_;
};
インポートを定義します。
sub import {
shift; # It's just me
my ( $name, $impl ) = @_;
if ( $name eq 'blah' && ref( $impl ) eq 'CODE' ) {
*blah = $_[1];
}
...
}
ut
一度に大量のコードを開発するときは、今でもこのパターンを使用しています。でも書くのは構わない
ut:dump_var( $var )
3〜4文字を節約するのとは対照的に(私はそれを と呼ぶことがあるためU::
).
今、あなたはこの長期的なことをしたくないようで、変数をダンプすることは開発に役立ちます。本当にこれをやりたい場合は、次Smart::Comments
のようにします。
### @foo
### %bar
必要なのは 1 つの use ステートメントだけです。
use Smart::Comments;