namespaces - Perl: Setup multiple package names for variable/functions? -
first, i'd isn't question of design, question of compliance. i'm aware there issues current setup.
in module, there packages named after servers, has many of same variables/functions pertain server. looks set do:
production_server_name::printer()or
test_server_name::printer()
perhaps better design might have been like:
central_package_name::printer('production')orcentral_package_name::printer('test')
anyhow, seems server names have changed, instead of using actual servernames, i'd rename packages production or test, without changing other code still refering production_server_name.
something like:
package production, production_server_name; # pseudo code i'm guessing sort of glob/import might work, wondering if there something similar. realize it's not practice saturate namespaces.
i not providing comments on design or might involve changing client code. functions in mytest.pm can accessed using either mytest:: or myexam::. however, can't use use myexam because physical file not there. clever @inc tricks, programs crash , burn when try clever.
mytest.pm
package mytest; sub hello { 'hello' } sub twoplustwo { 4 } $sub (qw( hello twoplustwo)) { no strict 'refs'; *{"myexam::$sub"} = *{"mytest::$sub"}; } 1; test.pl
#!/usr/bin/env perl use strict; use warnings; use feature 'say'; use mytest; myexam::hello(); myexam::twoplustwo(); output:
hello 4
Comments
Post a Comment