どこかでそれが可能であると読んだことは確かですが、知っておく必要があるいくつかの落とし穴があります。残念ながら、何をする必要があるかを説明したチュートリアルやページが見つかりません。Perl のチュートリアルを調べましたが、読んだ覚えのあるものは見つかりませんでした。複数のパッケージを 1 つの .pm ファイルに入れる方法を説明しているページまたはドキュメントを教えてください。
16179 次
4 に答える
41
これは私が通常行う方法です:
use strict;
use warnings;
use 5.010;
{
package A;
sub new { my $class = shift; bless \$class => $class }
sub hello { say 'hello from A' }
}
{
package B;
use Data::Dumper;
sub new { my $class = shift; bless { @_ } => $class }
sub hello { say 'Hello from B + ' . shift->dump }
sub dump { Dumper $_[0] }
}
$_->hello for A->new, B->new( foo => 'bar' );
于 2009-11-17T15:12:42.933 に答える
19
新しいパッケージを別のパッケージステートメントで開始するだけです。
package PackageOne;
# ...... code
package PackageTwo;
# .... more code
于 2009-11-17T13:35:24.410 に答える
8
これは私のために働いたものです:
#!/usr/bin/perl
use strict;
use warnings;
{
package A;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(a_sub);
our @EXPORT = qw(a_sub);
sub a_sub {
# your code ...
}
}
{
package B;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(b_sub);
our @EXPORT = qw(b_sub);
sub b_sub {
# your code ...
}
}
# Main code starts here ##############
use boolean;
use Data::Dumper;
import A qw(a_sub);
import B qw(b_sub);
a_sub();
b_sub();
重要な点は、「use」を使用する代わりに、「import」に変更することです (そうすれば、ファイルを検索しようとしなくなります)。
于 2016-05-29T11:51:50.080 に答える
3
方法:複数のpackage
指示を出すだけです。
私が考えることができるmy
落とし穴:-変数はパッケージにローカライズされていないので、とにかく共有されます。何かを発行する前にmain
、デフォルトでパッケージに入っています。
于 2009-11-17T13:36:54.780 に答える