Tk allows 'tab-key' ordering by the order in which you pack your widgets. One way to change this behaviour is to bind a key event to the focus method of the 'next' widget in line.
In this snippet, I bound the return key to the next 'Entry' widget in line. Uncomment the line noted in the code if you want to wrap around.
What time is it? It's Camel Time!
my $win = MainWindow->new();
my $otherwin = $win->Toplevel;
my $foo = $otherwin->Entry->pack;
my $bar = $otherwin->Entry->pack;
my $baz = $otherwin->Entry->pack;
&defineOrder($foo, $bar, $baz);
for (my $i=0; defined( $_[$i+1] ); $i++)
$_[$i]->bind('<Key-Return>', [\&focus, $_[$i+1]]);
# Uncomment this line if you want to wrap around
#$_[$#_]->bind('<Key-Return>', [\&focus, $_]);
my ($tk, $self) = @_;