require only loads a file once. The second require is doing nothing. Since your Value.pm file doesn't have a package declaration, its symbols belong to the package that required it first, that is, MainModule.
Have you considerd using use and Exporter (and giving a proper package declaration to Value.pm)?