my @parts = split (' ', $str); my ($ip, $path) = @parts[0,1]; my ($user, $pass, $port) = @{{map {split(/:/)} @parts[2,3,4]}}{'l','p','port'};