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 )