spark@server1 ~> cat -nv ././././t1 | grep 21 21 push @{ $HoA{ join('_',$swit,$server) } } = @ip_g; spark@server1 ~> perl -c ././././t1 Useless use of push with no values at ././././t1 line 21. Type of arg 1 to push must be array (not list assignment) at ././././t1 line 21, near "@ip_g;" ././././t1 had compilation errors.