Packageの名前を動的に変更したい
#!/user/bin/perl use strict; use warnings; no strict; my $pkg_href = 'Foo::'; my $new_href = 'Bar::'; foreach my $symbol ( keys %{ $pkg_href } ){ *glob = $pkg_href->{ $symbol } ; if( defined &glob ) { *{ $new_href . $symbol} = \&glob ; } } print Bar::foo() . "\n"; package Foo; use strict; use warnings; sub foo { return 'result is foo'; } 1;
ウーン。何か違う気がする。こんな感じでなんか、ないんかなぁ。
use Foo; use RenamePackageName; RenamePackageName->from('Foo')->to->('Bar'); print Bar::foo();