$interp->invoke('after',$args[1]+1000, "perl::Eval {Tcl::_code_dispose('$interp;$id')}");
####
#!/usr/bin/env perl
#
# to Tkx from https://st.aticpan.org/source/SREZIC/Tk-804.034/demos/timer
#
# This script generates a counter with start and stop buttons.
#
# original Tcl/Tk -> Perl translation by Stephen O. Lidie. lusol@Lehigh.EDU 96/01/25
require 5.002;
use Tkx;
use strict; use warnings;
my $mw=Tkx::widget->new(".");
# %tinfo: the Timer Information hash.
#
# Key Contents
#
# w Reference to MainWindow.
# s Accumulated seconds.
# h Accumulated hundredths of a second.
# p 1 IIF paused.
# t Value of $counter -textvariable.
my(%tinfo) = ('w' => $mw, 's' => 0, 'h' => 0, 'p' => 1, 't' => '0.00');
my $w_tfrm = $mw->new_ttk__frame();
my $counter= $w_tfrm->new_label(-textvariable =>\$tinfo{'t'}
,-justify =>'left'
,-anchor =>'nw'
,-font =>'TkFixedFont'
);
my $start=$w_tfrm->new_ttk__button(-text=> 'Start', -command=>sub {if($tinfo{'p'}) {$tinfo{'p'} = 0; tick()}} );
my $stop =$w_tfrm->new_ttk__button(-text=> 'Stop' , -command=>sub {$tinfo{'p'} = 1;} );
$counter->g_grid(-column=>0,-row => 0, -sticky=>'ew');
$start ->g_grid(-column=>0,-row => 1, -sticky=>'ew');
$stop ->g_grid(-column=>1,-row => 1, -sticky=>'ew');
$w_tfrm->g_pack(qw '-fill x -expand false -anchor nw');
Tkx::MainLoop;
exit;
sub tick {
# Update the counter every 50 milliseconds, or 5 hundredths of a second.
return if $tinfo{'p'};
$tinfo{'h'} += 5;
if ($tinfo{'h'} >= 100) {
$tinfo{'h'} = 0;
$tinfo{'s'}++;
}
$tinfo{'t'} = sprintf("%d.%02d", $tinfo{'s'}, $tinfo{'h'});
my $send_id=Tkx::after( 50 , \&tick);
} # end tick
##
##
sub after_dump{
my $info0=Tkx::after_info();
if (ref($info0) ne 'Tcl::List') {
print "not tkx list\n";
$info0=[Tkx::SplitList($info0)];
}
for my $send_id (@$info0) {
my $info1=Tkx::after_info($send_id);
print 'after:'.sprintf('%-15s',$send_id).' script-'.$info1->[0].' type-'.$info1->[1]."\n";
}
}
##
##
after:after#3 script-perl::Eval {Tcl::_code_dispose('Tcl=SCALAR(0x871eb00);after#2')} type-timer
after:after#2 script-::perl::CODE(0x89f20c8) type-timer