I figured that out and used printf to achieve the initial spacing. I also figured out how to accept the comma separated input, however I am having a small issue with this. When it renders the output on the screen, it is separating the numeric identifier from the data. So, what I get is:
Enter Selection(s): 1,3 #this is what the user will input and the results output below
1. 10.10.10.11
3
.10.10.10.13
What I expect to see is this
1. 10.10.10.11 3. 10.10.10.13
I found that adding a trailing comma to the input 1,3, resolved the issue, but created another warning
Argument "\n" isn't numeric in subtraction (-)
# Import cluster hosts list and print sorted output
print color('bold white') . "The following hosts were found: \n\n" . c
+olor('reset');
use File::Slurp;
my @chosts = read_file($chosts_file);
my @vdbhosts = sort @chosts;
foreach my $i (0..$#vdbhosts ) {
printf '%-2s',"";
print $i + 1 . ". $vdbhosts[$i]";
}
print "\n";
ASSIGN_VDB_HOSTS:
# Choose the hosts from the list of above
print "Please select the hosts from the list above separated by commas
+ (1,2,3...)\n";
print "\n";
print "Enter selection(s): ";
my $vdbhostinput = (<>);
print "\n";
my @vdbvalues = split(',', $vdbhostinput);
foreach my $i (@vdbvalues){
print " " . $i . ". " . $vdbhosts[$i - 1];
}
print "\n";
|