in reply to problem unless I use ".="

Others have given you the reason for the warning but this snippet causes some concern:

if ( $baseball{yankees}=$baseball{yankees}.$baseball{mets} )
Assignment inside an if is unusual .. do you mean to use assignment (=) here or do you want to compare strings? If compare, you want the string eq operator not the assignment operator (=) nor the numerical == operator.
if ( $baseball{yankees} eq $baseball{yankees}.$baseball{mets} ) {
(but that doesn't make much sense with your examples so ... )

-derby