I scarfed the Tk code Im presenting here from Re: Tk perl much thanks to Jouke.

My question is though, how to make the nodes appear in realtime as they are processing instead of all at once when they are done. This particular code is being run on a w2k workstation, if that matters.

the code
use strict; use mship; use Tk; my $host; $|++; #First create a new mainwindow my $mainwindow = new Tk::MainWindow(); #Then create a textwidget (called 'Scrolled', with subtype 'Text") my $text = $mainwindow->Scrolled("Text", -scrollbars => 'se')->pack(-e +xpand => 1, -fill => 'both'); for ( 0 .. 54 ) { get($_); last if ($_ == 53 ) } # create a closebutton my $button = $mainwindow->Button(-text => "close", -command => sub {$m +ainwindow->destroy()})->pack(); # start the main loop! MainLoop; sub get { my $node = shift; $host = sprintf ("%02d", $node) ; my %status = mship::connection("192.9.210.1$host", "13"); my $stats=($status{status} == 0) ? "Up" : "Down"; $text->insert('end', "$status{remote_name} is $stats\n"); }
the code for mship.pm is here
use strict; use warnings; package mship; use IO::Socket::INET; use Socket; use Carp; =head1 NAME mship - The mothership connection or how I learned to stop worrying and trust the script. =head1 VERSION Version 0.04 =cut our $VERSION = '0.04'; =head1 SYNOPSIS use mship; my %status=mship::connection('IP', 'TCP_PORT'); my $status=mship::mstat('HOST', 'TCP_PORT') ? "Up" : "Down"; ... =head1 FUNCTIONS =head2 connection =cut ############## sub connection ############## { my $IP = shift; my $TCP_PORT = shift; my ( $ipadd, $port_name, $remote_name ); $ipadd = Socket::inet_aton($IP) or croak "$IP is not valid\n"; $port_name = getservbyport($TCP_PORT, 'tcp') or $port_name = "unknown"; $remote_name = gethostbyaddr( $ipadd, 2 ) or print "Unable to resolve hostname for $IP\n"; my %stats = ( 'IP' => $IP, 'PORT' => $TCP_PORT, 'port_name' => $port_name, 'remote_name' => $remote_name, 'status' => &mstat($IP, $TCP_PORT) ); return %stats or carp "unable to return the value of \%stats\n";; } =head2 mstat =cut ############# sub mstat ############# { my ( $host, $tcp_port ) = @_; my $isvalid = Socket::inet_aton($host) or croak "$host is not valid\n"; my $sock = IO::Socket::INET ->new( Timeout => 2, PeerAddr => $host, PeerPort => $tcp_port, Proto => 'tcp' ); return $sock ? 1 : 0; carp "Unable to return $sock\n"; } =head1 AUTHOR Ted Fiedler, C<< <fiedlert@gmail.com> >> =head1 BUGS Please report any bugs or feature requests to C<fiedlert@gmail.com> =head1 ACKNOWLEDGEMENTS =head1 COPYRIGHT & LICENSE Copyright 2003, 2004, 2005 Ted Fiedler, All Rights Reserved. This program is free software; you can redistribute it and/or modify i +t under the same terms as Perl itself. =cut 1; # End of mship


Thanks in advance
Ted
--
"That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."
  --Ralph Waldo Emerson

In reply to Updating Tk window in real time by tcf03

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.