[lug] Perl/Tk question.

David Stepaniak davestep at cgd.ucar.edu
Mon Jun 30 15:13:54 MDT 2003

Dear BLUGer's:

I have been tinkering with the following short Perl/Tk script:

#!/usr/sbin/perl -w

  use Tk;

  $mw = MainWindow->new;
  $mw->title('Entry Widget');

   $mw->Label(         -text => 'Enter some characters:'

   $mw->Entry( -textvariable => \$input,

  $mw->Button(         -text => 'Send input to standard out',
                    -command => [ \&printInput, $input ]

  $mw->Button(         -text => 'Exit',
                    -command => sub{ exit; }
       ->pack(         -side => 'bottom' );


  sub printInput {

    print "The user supplied input is $_[0]\n";


No matter what I do, the argument $_[0] in sub printInput is

Use of uninitialized value at entryWidget.pl line 31.

which results in an incomplete standard out of

The user supplied input is

In sub printInput, if $_[0] is replaced by $input, things
work as expected. Am I overlooking the nature of the scope
of $input, especially in the entry widget, and then in relation to
the first button widget (with the reference to the printInput
subroutine in the callback)?

Thank you for any insight.

David Stepaniak

More information about the LUG mailing list