in reply to Cyclic module references

I don't think the problem is the cyclic references -- I think the problem is a typo between DocumentManager and Mokslas::DocumentManager, as bronto already suggested. Cyclic use statements are no problem for Perl:
file mod1.pm: package mod1; use mod2; sub import { print "mod1 imported from " . (caller)[1] . "\n" } 1; file mod2.pm: package mod2; use mod1; sub import { print "mod2 imported from " . (caller)[1] . "\n" } 1; file use.pl: #!/usr/bin/perl use lib '.'; use mod1; use mod2; output: $ perl use.pl mod2 imported from mod1.pm mod1 imported from use.pl mod2 imported from use.pl $
require and use will only load the file if it's not already loaded in %INC. Notice how mod2 never imports mod1.

blokhead