http://www.perlmonks.org?node_id=940452

joeymac has asked for the wisdom of the Perl Monks concerning the following question:

Monks, I had a colleague ask me a question about some Perl code he was writing. The bit he was having trouble with involves using the hostname UNIX command. If the $HOSTNAME is hard coded (commented out line below) everything works fine. However if he tries to use

 $HOSTNAME = `hostname -s`;

it doesn't work right. From my playing around with the bit of code below, there seems to be some problem matching the string with what is returned by the hostname command. The code never gets to any of the $ANCHOR's but $HOSTNAME seems to be passed as a string properly (see output below). Any help would be greatly appreciated! Thanks!! Here's the code snippet:

#!/bin/perl $HOSTNAME = `hostname -s`; #$HOSTNAME = server2; if ($HOSTNAME eq server1) { $ANCHOR = "/HOME/"; } elsif ($HOSTNAME eq server2) { $ANCHOR = "/TEST/HOME"; } elsif ($HOSTNAME eq server3) { $ANCHOR = "/DEV/HOME"; } print "Anchor is $ANCHOR on host $HOSTNAME\n";

OUTPUT w/ `hostname -s`:

Anchor is  on host server2

OUTPUT w/ hard code:

Anchor is /TEST/HOME on host server2