Разделенное решение очень хрупкое, если строка плохо отформатирована, она выдаст неожиданные результаты.
Если вы хотите быть более строгим, вы можете использовать это:
my $input = 'Mac(user, name)';
if (my ($user, $name) = $input =~ / Mac \( ([^,]+?) , ([^,]+?) \) /x) {
say "user: $user, name: $name";
} else {
die "input string '$input' is wrongly formatted";
}