前提・実現したいこと
a,c,cというボタンを作成し,例えばaを押すとa was pressed!というのがアウトプットされるプログラムを作りたい
発生している問題・エラーメッセージ
プログラムを開始した時点でボタンを押していないのに a was pressed! b was pressed! c was pressed! と表示される ボタンを押すと Tk::Error: Undefined subroutine &main::1 called at /usr/local/ActivePerl-5.28/lib/perl5/site_perl/5.28.1/darwin-thread-multi-2level/Tk.pm line 251. Tk callback for .button Tk::__ANON__ at /usr/local/ActivePerl-5.28/lib/perl5/site_perl/5.28.1/darwin-thread-multi-2level/Tk.pm line 251 Tk::Button::butUp at /usr/local/ActivePerl-5.28/lib/perl5/site_perl/5.28.1/darwin-thread-multi-2level/Tk/Button.pm line 175 <ButtonRelease-1> (command bound to event) とでます
該当のソースコード
perl/Tk
1#!/usr/local/bin/perl 2use strict; 3use warnings; 4use Tk; 5 6my @names=("a","b","c"); 7my $mw = MainWindow->new(); 8 $mw->title("Button Demo"); 9foreach $_ (@names) { 10 $mw->Button(-text => $_, 11 -command => print_name($_))->pack(); 12 } 13 sub print_name { 14 print "$_[0] was pressed!\n"; 15 } 16 17MainLoop();
試したこと
おそらくcommandオプションのサブルーチンの呼び出し方が良くないのかもしれません
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。