Packageの名前を動的に変更したい
# --- Foo.pm package Foo; sub foo { return 'result is foo'; } 1; # --- RenamePackageName.pm package RenamePackageName; sub from_to { my ( $class, $from, $to ) = @_; $from = "::$from\::"; $to = "::$to\::"; @{ %{$to} }{ keys %{$from} } = values %{$from}; } 1; # --- main.pl #!/usr/bin/env perl use Foo; use RenamePackageName; RenamePackageName->from_to('Foo'=>'Bar'); print Bar::foo();
% perl main.pl result is foo
こういうこと?