I suggest using a hash instead of plain variables:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %questions;
my $cur;
while (<DATA>) {
$cur = $1 if /^\d+\.\s*(.*)$/;
$questions{$cur}->{selected} = $1 if $cur and /^[A-Z]+\.\s*(.*)\s+
+\*$/;
s/\s*\*\s*$//;
push @{$questions{$cur}->{answers}}, $1 if $cur and /^[A-Z]+\.\s*(
+.*)\s*$/;
}
print Dumper \%questions;
__DATA__
1. What is my name?
A. Rooney *
B. Gerrard
C. Ronaldo
D. Ronaldinho
2. Who's your bet in the coming World Cup?
A. Brazil *
B. Germany
C. England
D. Cameroon