Try enclosing the lookup_redirects entries in curly braces, not quotes. By using quotes, the interpreter is expanding the list contents so the resulting list is this:
"
www.whatever123.co.uk www.whatever123.com http://www.whatever.com/redirect-to-here"
...
In your code domainlist would be
www.whatever123.co.uk and rdurl would be
www.whatever123.com, not the url that you were expecting.
When using braces the variables are not expanded but stored by reference.
class lookup_redirects {
{$::domainlist_1 http://www.whatever.com/redirect-to-here}
{$::domainlist_2 http://www.whatever.com/redirect-to-there}
}
I believe this will work, let me know if not.
If all else fails, use log statements everywhere. If you would have logged the value for $row on each iteration of the foreach loop you would have seen that it wasn't what you expected. Also log all variables. This would have told you something was up right away.
-Joe