In the first place, you should be using strict and warnings. If you had, you would have been warned that you are trying to use commas in a qw() list. In the second place, what you really want to do (to get the output you desire) is loop through the positions in the list and not have two loops. So:
#!perl -w
use strict;
my $x=1;
my $y=2;
my @a=qw(1 2 3);
my @b=qw(7 8 9);
for my $pos(0..2) {
print "$x:$a[$pos] $y:$b[$pos]\n";
}