[Moscow.pm] Хочу обычного
s2323
s2323 на land.ru
Чт Окт 17 09:41:54 PDT 2013
Как вариант самодельной педали:
package ShortNamer;
no strict;
no warnings;
sub import {
my ($from, %opts) = @_;
my $original_import;
if (exists $opts{'-as'}) {
my $to = $opts{'-as'};
$original_import = $to->can('import');
foreach my $key (keys %{ $from . '::' }) {
*{$to . '::' . $key} = *{$from . '::' . $key};
}
}
if ($original_import) {
goto $original_import;
}
}
1;
Далее, используем его в MyCompany::MySchema::Sklad::Feature::SubFeatureClass (через одно место, конечно, но чтоб ничего не сломать, и чтоб работало, пишем последним в списке require):
package MyCompany::MySchema::Sklad::Feature::SubFeatureClass;
...
require ShortNamer;
ShortNamer->import(-as => __PACKAGE__);
...
1;
Ну и далее по месту использования:
use ShortNamer;
use MyCompany::MySchema::Sklad::Feature::SubFeatureClass -as => 'Feature';
my $feature_obj1 = Feature->new;
my $feature_obj2 = Feature->new;
Подробная информация о списке рассылки Moscow-pm