Alvis-Bags

 view release on metacpan or  search on metacpan

bin/linkMpca  view on Meta::CPAN

#!/usr/bin/perl -w

use strict;
use POSIX;
use IO::Handle; 
use Getopt::Long;
use Pod::Usage;

###################### CONFIGURATION #####################


############ END CONFIGURATION ######################

#  autoflush
select((select(STDERR), $| = 1)[0]);

# encoding pragmas follow any includes like "use"
use encoding 'utf8';
use open ':utf8';

# build MPCA components, 1 is "no", must be the default 
my $COMPS = 1; 
#  number of entries per component per report 
my $MAXREP = 50; 

my $reporting = 0;
my $norank = 0;
my $onerank = 0;
my $stem = "";

#################################################################
#
#  Run
#
#################################################################

GetOptions(
     'man'       => sub {pod2usage(-exitstatus => 0, -verbose => 2)},
      'onerank' => \$onerank,
      'norank' => \$norank,
      'fields=i' => \$MAXREP,
      'reporting' => \$reporting,
      'h|help'       => sub {pod2usage(1)}
);

pod2usage(-message => "ERROR: need number of components and stem")
      if ( $#ARGV != 1 );

$COMPS = shift();
$stem = shift();

my $mstem = "$stem$COMPS";

if ( ! -f "$stem.srcpar" ) {
  print STDERR "Need $stem.srcpar file\n";
  exit(1);
}
if ( $onerank ) {
  if ( ! -f "$stem.docs" ) {
    print STDERR "Need $stem.docs file\n";
    exit(1);
  }
  if ( ! -f "$stem.dochash" ) {
    print STDERR "Need $stem.dochash file\n";
    exit(1);
  }
  print STDERR "\nNow building single rank\n";
  print STDERR "========================\n";
  system("mprank -u -h $stem");
  #  turn off character processing on this since am using unpack()
  open(INF,'<:bytes',"$stem.onerank");
  open(INH,"<$stem.dochash");
  my $buf = ""; 
  read(INF,$buf,4); 
  my $I = unpack("i",$buf);



( run in 1.839 second using v1.01-cache-2.11-cpan-5837b0d9d2c )