The solution to your problem is by making the outer scoped variable a package variable using our, and referring to it using the implicit main package. The nested variable is a local variable using my. The full routine then becomes
#!/usr/bin/perl
use strict;
use warnings;
our $a = 10;
{
my $a = 11;
print $a, "\n"; # prints the local variable
print $main::a, "\n"; # prints the package variable
}
That said, it is also a trick question during your interview, as you mentioned. Choosing $a or $b for a local variable is always bad, because they are used by sort which means they are somewhat special and can cause strange behaviour.