in reply to what's wrong with this?

length returns the length in characters of given argument

keys in scalar context (your case) returns numner of keys ina hash

So if your hash has 153 keys than length '153' returns 3 i.e. three characters

change you code as:

print "there are @{[scalar keys %common]}:\n";