Note that I got build failures when I attempted to pull $Package into $self.
The distributions below because during various 'eval EXPR'
statements, I got a 'Global variable $Package ...' error.
cut -d '/' -f 7,8,9,10,11 research/problematic.builds.
20100410.txt
D/DB/DBURDICK/BoostGraph/Boost-Graph-1.4.tar.gz
D/DE/DEEMON/Crypt-OpenSSL-SMIME-0.02.tar.gz
D/DL/DLOWE/Text-Tmpl-0.33.tar.gz
D/DM/DMAKI/Data-Valve-0.00010.tar.gz
D/DO/DORMANDO/Perlbal-XS-HTTPHeaders-0.20.tar.gz
E/ED/EDPRATOMO/Algorithm-Permute-0.12.tar.gz
J/JH/JHI/String-Approx-3.26.tar.gz
K/KA/KARMAN/Search-Tools-0.45.tar.gz
K/KI/KILINRAX/HTML-Strip-1.06.tar.gz
L/LA/LAIRDM/Algorithm-SVM-0.13.tar.gz
M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz
M/MC/MCEGLOWS/Search-ContextGraph-0.15.tar.gz
M/MH/MHX/Convert-Binary-C-0.74.tar.gz
M/MH/MHX/Tie-Hash-Indexed-0.05.tar.gz
M/MI/MIKEWONG/Table-ParentChild-0.05.tar.gz
M/MS/MSERGEANT/CDB_File-0.96.tar.gz
M/MS/MSERGEANT/IO-KQueue-0.34.tar.gz
P/PA/PAJAS/XML-LibXML-1.70.tar.gz
P/PM/PMQS/Filter-1.37.tar.gz
S/SA/SALVA/Compress-PPMd-0.11.tar.gz
S/SA/SAPER/Net-Pcap-0.16.tar.gz
S/SA/SAPER/Net-RawIP-0.25.tar.gz
S/SG/SGOELDNER/MonetDB-CLI-MapiXS-0.03.tar.gz
S/SM/SMUELLER/Math-SymbolicX-FastEvaluator-0.01.tar.gz
S/SM/SMUELLER/Parse-ExuberantCTags-1.01.tar.gz
S/SP/SPIDB/Net-ext-1.011.tar.gz
T/TJ/TJMATHER/Crypt-OpenSSL-DSA-0.13.tar.gz
# them into $self led to build problems. In most cases, strings being
# 'eval'-ed contain the variables' names hard-coded.
our (
- $FH, $Package, $func_name, $Full_func_name, $Packid, $pname, $ALIAS,
+ $FH, $Package, $func_name, $Full_func_name, $pname, $ALIAS,
);
our $self = {};
($pname = $func_name) =~ s/^($self->{Prefix})?/$self->{Packprefix}/;
my $clean_func_name;
($clean_func_name = $func_name) =~ s/^$self->{Prefix}//;
- $Full_func_name = "${Packid}_$clean_func_name";
+ $Full_func_name = "$self->{Packid}_$clean_func_name";
if ($Is_VMS) {
$Full_func_name = $SymSet->addsym($Full_func_name);
}
if ($self->{Overload}) { # make it findable with fetchmethod
print Q(<<"EOF");
-#XS(XS_${Packid}_nil); /* prototype to pass -Wmissing-prototypes */
-#XS(XS_${Packid}_nil)
+#XS(XS_$self->{Packid}_nil); /* prototype to pass -Wmissing-prototypes */
+#XS(XS_$self->{Packid}_nil)
#{
# dXSARGS;
# XSRETURN_EMPTY;
/* Making a sub named "${Package}::()" allows the package */
/* to be findable via fetchmethod(), and causes */
/* overload::Overloaded("${Package}") to return true. */
- (void)$self->{newXS}("${Package}::()", XS_${Packid}_nil, file$self->{proto});
+ (void)$self->{newXS}("${Package}::()", XS_$self->{Packid}_nil, file$self->{proto});
MAKE_FETCHMETHOD_WORK
}
}
}
-
sub Q {
my($text) = @_;
$text =~ s/^#//gm;
$self->{Prefix} = defined($3) ? $3 : ''; # keep -w happy
$self->{Prefix} = quotemeta $self->{Prefix};
($self->{Module_cname} = $Module) =~ s/\W/_/g;
- ($Packid = $Package) =~ tr/:/_/;
+ ($self->{Packid} = $Package) =~ tr/:/_/;
$self->{Packprefix} = $Package;
$self->{Packprefix} .= "::" if $self->{Packprefix} ne "";
$self->{lastline} = "";