I would parse the input line into a hash table. Add code to test the keys to see what kind of situation that you are in.
if (defined ($parms{username}) and defined($parms{password}) )
{ print "username and password case\n";}
etc....
use strict;
use warnings;
use Data::Dump qw(pp);
while (defined (my $line =<DATA>))
{
chomp $line;
next unless $line =~ /\S/; #skip blank lines
my %parms = $line =~ /--(\w+)\s+([\w.-]+)/g;
pp \%parms;
}
=output
{
password => "abc123",
server => "api.blr-ocp1.lab.rbbn.com",
username => "mgore",
}
{
server => "api.blr-ocp1.lab.rbbn.com",
token => "kfjshdssahdvkbvjkbj",
}
=cut
__DATA__
1. --server api.blr-ocp1.lab.rbbn.com --username mgore --password abc1
+23
2. --server api.blr-ocp1.lab.rbbn.com --token kfjshdssahdvkbvjkbj