Похоже, вы хотите определить шаблон, в который будут вставлены ваши совпадения?Для этого вы можете использовать printf , например,
my $string="3-4";
my $cal="%s %s\n";
if($string=~ '^(.)-(.)$'){
printf($cal, $1, $2);
}
Если вы просто хотите объединить все матчи вместе и не знаете, сколько их может быть, попробуйте что-то вроде этого
my @matches=$string=~ '^(.)-(.)$';
if (scalar(@matches))
{
print join(' ',@matches);
}