use X;
####
BEGIN { require Module; Module->import( LIST ); }
##
##
sub require {
my ($filename) = @_;
if ( exists $INC{$filename} ) {
return 1 if $INC{$filename};
die "Compilation failed in require";
}
my ( $realfilename, $result );
ITER: {
foreach $prefix (@INC) {
$realfilename = "$prefix/$filename";
if ( -f $realfilename ) {
$INC{$filename} = $realfilename;
$result = do $realfilename;
last ITER;
}
}
die "Can't find $filename in \@INC";
}
if ($@) {
$INC{$filename} = undef;
die $@;
}
elsif ( !$result ) {
delete $INC{$filename};
die "$filename did not return true value";
}
else {
return $result;
}
}