On Tue, Jul 17, 2007 at 10:16:30AM +0200, Jeffrey Ratcliffe wrote: > I have a ProgressBar tracking a forked process below. There is > presently a debugging line > > print "$1 $2\n"; > > With this left in, the text in the ProgressBar is updated OK. Without > the print statement, the text is not updated. > > What is going on? [...] > sub sig_child { > my $pid = wait; > if ($pid >= 0) { > delete $helperTag{$pid}; > } > } [... other indentation mistakes ...]
Oh, for the love of God, if you want other people to look at your code then please make it readable. That *includes* "having proper indentation". Having to look at such messy code just made my eyes bleed. That being said, > if ($condition & 'in') { # bit field operation. >= would also work > my $line = <$reader>; > if ($line =~ /(\d*\.?\d*)(.*)/) { > print "$1 $2\n"; > $pbar->set_fraction($1); > $pbar->set_text($2); > } > } directly using values which you extract using a regex like that has issues with glib (it wants to have modifiable variables, which these things aren't). Try assigning them to temporary variables before going on: if($line =~ /(\d*\.?\d*)(.*)/) { my $fraction=$1; my $text=$2; $pbar->set_fraction($fraction); $pbar->set_text($text); } Also, I don't think fractional values are allowed for a progress bar. -- Wouter Verhelst NixSys BVBA Louizastraat 14, 2800 Mechelen T: +32 15 27 69 50 / F: +32 15 27 69 51 / M: +32 486 836 198 _______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-perl-list