Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Tkx: Table Question

by vladmaster99 (Initiate)
on Oct 24, 2011 at 16:44 UTC ( [id://933438]=perlquestion: print w/replies, xml ) Need Help??

vladmaster99 has asked for the wisdom of the Perl Monks concerning the following question:

Here is some of my first TKX code what am I doing wrong. I would rather not rewrite the table into marked up text. Table looks so close to working the way I would like it to. This is not the actual program I am writing it is just a smaller bit of code that has the exact same error message and same line on which the error is occuring
#use strict; use warnings; use Tkx; Tkx::package_require("Tktable"); my $mw = Tkx::widget->new("."); %hash = ( # data to display '0,0' => 'Goodby', '1,1' => 'cruel', '2,2' => 'world', ); %hash2 = ( # data to display '0,0' => 'Goodby', '1,1' => 'cruel', '2,2' => 'world', ); my $t = $mw->new_table ( -rows => 5, -cols => 3, -cache => 1, -variable => \%hash, ); $t->g_pack(-fill => 'both', -expand => 1); $b=$mw->new_button (-text=>"Search", -command=>sub {Search()}, ); $b->g_pack(); $b2=$mw->new_button (-text=>"Text", -command=>sub {Text()}, ); $b2->g_pack(); sub Search() {print("You rang?\n"); %hash = ( # data to display '0,0' => 'Hello', '1,1' => 'Great', '2,2' => 'world', ); }; sub Text() {print("Yes Master?\n"); %hash2 = ( # data to display '0,0' => 'Hello', '1,1' => 'Great', '2,2' => 'world', ); }; Tkx::MainLoop(); use Data::Dump; dd \%hash; use Data::Dump; dd \%hash2;
fails when search button pressed But works for text button. and hash is diffent from hash2 what is Tkx and tie doing?? Console output
D:\DATA\HOME\Perl>TableTest.pl Yes Master? You rang? { # tied Tcl::Var active => "", } { "0,0" => "Hello", "1,1" => "Great", "2,2" => "world" } D:\DATA\HOME\Perl>TableTest.pl Yes Master? { # tied Tcl::Var "0,0" => "Goodby", "1,1" => "cruel", "2,2" => "world", "active" => "", } { "0,0" => "Hello", "1,1" => "Great", "2,2" => "world" } D:\DATA\HOME\Perl>
Cheers for any help.

Replies are listed 'Best First'.
Re: Tkx: Table Question
by vladmaster99 (Initiate) on Oct 25, 2011 at 04:05 UTC

    Well dear Monks I am perplexed the following code works with the "print Dumper(%hash);" included and fails with an "EXIST" error without line. Why???

    #use strict; use warnings; use Tkx; use Data::Dumper; Tkx::package_require("Tktable"); my $mw = Tkx::widget->new("."); %hash = ( # data to display '0,0' => 'Goodby', '1,1' => 'cruel', '2,2' => 'world', ); %hash2 = ( # data to display '0,0' => 'Goodby', '1,1' => 'cruel', '2,2' => 'world', ); my $t = $mw->new_table ( -rows => 5, -cols => 3, -cache => 1, -variable => \%hash, ); $t->g_pack(-fill => 'both', -expand => 1); $b=$mw->new_button (-text=>"Search", -command=>sub {Search()}, ); $b->g_pack(); $b2=$mw->new_button (-text=>"Text", -command=>sub {Text()}, ); $b2->g_pack(); sub Search() {print("You rang?\n"); %hash = ( # data to display '0,0' => 'Hello', '1,1' => 'Great', '2,2' => 'world', ); print Dumper(%hash); #only works with this line in code }; sub Text() {print("Yes Master?\n"); %hash2 = ( # data to display '0,0' => 'Hello', '1,1' => 'Great', '2,2' => 'world', ); print Dumper(%hash2); }; Tkx::MainLoop();
Re: Tkx: Table Question
by Anonymous Monk on Oct 25, 2011 at 10:42 UTC

    Adding an explicit return ; to sub Search will eliminate the error

    I'm not sure where the bug lies, but I think there are two, one in Tcl for Tcl::Var, and one in Tkx for using the return value and not documenting how

      Thanks this fixed my problem thanks for the prompt reply.cheers < class="pmsig">
      I have to start somewhere here is better than anywhere else

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://933438]
Approved by Corion
Front-paged by keszler
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2024-04-25 14:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found