У меня есть 2 файла perlmodule (.pm). Файл_A.pm находится по адресу /some/dir/here/File_A.pm. У меня есть файл File_B.pm, расположенный по адресу /some/other/dir/File_B.pm.
File_B.pm установит, что мой хэш% машин равен /some/dir/here/File_A.pm% машин, если File_A.pm доступен для чтения с использованием if (-r '/some/dir/here/File_A.pm' ) иначе он будет использовать стандартный хеш, определенный в File_B.pm как мои% machines = ().
Я попробовал код ниже
Однако, это не работает для меня.
package some::other::dir::File_B;
use strict;
use vars qw(@ISA @EXPORT $VERSION);
use Cwd;
use some::dir::File_A;
use Exporter;
$VERSION = 1.0;
@ISA = qw(Exporter);
@EXPORT =
qw(getMachines printMachines getMachineAttributes printMachineAttributes);
if(-r '/some/dir/here/File_A.pm'){
my %machines = do q{/some/dir/here/File_A.pm};
else{
my %machines = (
"some.fqdn.com" => {
role => ["someRole"],
environment => "test",
location => "USA",
os => "Ubuntu",},
)
}
###################################
#I have getMachines, printMachines, getMachineAtrributes, and
#printMachineAttributes below here in my code
####################################
Я ожидаю, что логика будет использовать File_A.pm моего хэша% machines, если он доступен для чтения, и если нет, то использовать резервную копию моего хэша% machines на случай, если File_A.pm каким-то образом станет нечитаемым.