The problem is that you are using
our in one place and not the other. Either use
our in both packages, or don't use it in either. Or put brackets around the package contents, like this:
package Dog {
our $name="Odie";
}
package Cat {
$name = "Garfield";
print "$name says hello to $Dog::name. \n" ;
}