Your main problem is that the values of hashes can only be scalars, and not entire hashes. Lucky for you, a hash references (hashref) is also a scalar. You want to create your
%args hash like this:
my %args = (users => \%userHash, domains => \%domainHash, path => $path);
In your subroutine, you have to dereference the hashrefs in order to use them.
sub doSomethingUseful
{
my $args = shift;
my $users = $args->{users};
my $domains = $args->{domains};
my $path = $args->{path};
if (keys %$users > 1)
{
print("I was hoping you'd say that.");
}
}