Diab Jerius

NAME

Astro::FITS::CFITSIO::Simple::PrintStatus - generate a progress status update

DESCRIPTION

INTERNAL USE ONLY! No warranty, may change, etc.

Methods

new
  $status = Astro::FITS::CFITSIO::Simple::PrintStatus->new( $what );

Create a new object. $what may be one of the following:

SCALAR

If this is non-zero, a progress indicator is written to STDERR. If Term::ProgressBar is available, that is used, else a simple percentile is output. If this is zero, returns undef.

GLOB

If it's a glob, it's assumed to be a filehandle glob, and output is written to that filehandle.

CODEREF

If it's a code reference, it is called with three arguments

  rows read
  total number of rows
OBJECT

If it's an object, and it has print() and flush() methods, it'll call those as appropriate.

start
  $status->start( $nrows );

This preps the output and indicates the number of rows that will be written.

update
  $status->update( $rows_read );

This will cause output to be generated. It returns the number of rows that will cause an actual change in the output. It is usually used as such:

  $next_update = 0;
  $ps->start();
  for ( 0..$nmax )
  {
    # do stuff

    $next_update = $ps->update( $_ )
      if $_ >= $next_update;
  }
  $ps->finish
    if $nmax >= $next_update;
finish
  $status->finish;

This should be called after all of the rows have been written.

1;