Firstly, store your $j in an array, then get them from it.
For example,
my @j;
for (0..4) {
push @j,$mw->Entry()->pack();
}
sub f {
print $_->get for @_;
}
&f(@j);
Secondly, you're doing it all wrong because -validatecommand should work with own parameters, not with some global variables. See http://search.cpan.org/~srezic/Tk-804.030/pod/Entry.pod#VALIDATION:
The validateCommand and invalidCommand are called with the following
arguments:
· The proposed value of the entry. If you are configuring the entry
widget to have a new textvariable, this will be the value of that
textvariable.
· The characters to be added (or deleted). This will be "undef" if
validation is due to focus, explcit call to validate or if change
is due to "-textvariable" changing.
· The current value of entry i.e. before the proposed change.
· index of char string to be added/deleted, if any. -1 otherwise
· type of action. 1 == INSERT, 0 == DELETE, -1 if it's a forced
validation or textvariable validation
Just print
$_[0] inside your
-validatecommand.
Sorry if my advice was wrong.