##
# you're doing:
my($hash) = @_;
# should be:
my %hash = @_;
####
# passing it in...
return &Y::module_subroutine(\%hash_to_send);
# and assigning it within the subroutine...
my $hash = shift;
# and when using it in the sub, be sure to dereference...
return "The colour of the sky is " . $hash->{third_colour};