my $udp_server = shift @ARGV; my $trans_serv; my $remote_host; my $remote_port; my $destination; if ( $udp_server ) { use Socket; use constant SIMPLE_UDP_PORT => 4001; use constant REMOTE_HOST => 'myservername'; # use constant REMOTE_HOST => $udp_server; $trans_serv = getprotobyname('udp'); $remote_host = gethostbyname(REMOTE_HOST); $remote_port = SIMPLE_UDP_PORT; $destination = sockaddr_in($remote_port, $remote_host); socket (UDP_SOCK, PF_INET, SOCK_DGRAM, $trans_serv); } #### use constant REMOTE_HOST => $udp_server; #### Bad arg length for Socket::pack_sockaddr_in, length is 0, should be 4 at /opt/perl/lib/5.3.7/i686-linux-thread-multi/Socket.pm line 373 #### my $udp_server = shift @ARGV; if ( $udp_server eq 'server1' ) { use constant REMOTE_HOST => 'server1'; } elsif ( $udp_server eq 'server2' ) { use constant REMOTE_HOST => 'server2'; } elsif ( $udp_server eq 'server3' ) { use constant REMOTE_HOST => 'server3'; } elsif ( $udp_server eq 'server4' ) { use constant REMOTE_HOST => 'server4'; } else { $udp_server = ''; } if ( $udp_server ) { use Socket; use constant SIMPLE_UDP_PORT => 4001; : :