in reply to Ignore certain return values

In my testing $result always gets the value "c" (I assume because it's the last value). But is this guaranteed? Where is this documented?
Look at the comma operator in perlop:
Binary "," is the comma operator. In scalar context it evaluates its left argument, throws that value away, then evaluates its right argument and returns that value. This is just like C's comma operator.
So yes, if you have several of those comma operations in a row, you'll end up with the last value.

Do note that if you first put them values in an array and return that, you get something else entirely back: the number of elements in the array.

sub get_values { my @a = ("a", "b", "c"); return @a } $x = get_values; # 3
And taking this one step further: How can I get "a" and "c"? I know that I can just use three variables and ignore the second one, but I guess there's a better way to do that.
Use a slice on the list, just like you would do with an array. For that, you must wrap the function call in parens:
my @some = (get_values)[0,2];