Perl::Repository::APC::BAP - Transform the argument to buildaperl


  use Perl::Repository::APC::BAP;
  my $apc = Perl::Repository::APC->new("/path/to/APC");
  my $bap = Perl::Repository::APC::BAP->new($apc);
  my($baseperl,$nextperl,$firstpatch,$lastpatch,$dir) = $bap->translate("perl",...);


The constructor new() takes a single argument, a Perl::Repository::APC object. The resulting object has the following methods:

  • translate($branch,$baseperl,$patchlevel)

  • translate($branch,$baseperl)

    $branch is one of perl, maint-5.004, maint-5.005, maint-5.6, maint-5.8. $baseperl is the perl version we want as a base. $patchlevel is a patch number that must also be available in the local copy of APC.

    $branch is a mandatory argument. $baseperl may be undef and $patchlevel can be omitted. If $baseperl is undef and $patchlevel is given, translate() finds the proper version. If patch is omitted and $baseperl is given, translate() finds the most recent patch for that base. If both are omitted, translate() finds the newest values available for both version and patch for that branch. If both are given, translate() checks if the values are legal and dies if they aren't.

    Five values are returned: the perl version we can use as a base, the "next" perl version that this patchset is running to, the first and the last patch number we want, and finally the directory where we find the patches. The directory was the same as the target perl version up to 5.8.0 but started to diverge from 5.8.1 and later. Please see bap.t for examples. Starting from 5.10.1. the directory may be one of these living directories that match ^perl-.*-diffs$. These directories do not contain a subdirectory diffs. Instead they contain the patches directly.


Andreas Koenig <ANDK>


This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.



Perl::Repository::APC, patchaperlup, buildaperl, binsearchaperl