CGI-Out
view release on metacpan or search on metacpan
lib/CGI/Out.pm view on Meta::CPAN
# Copyright (c) 1996, David Muir Sharnoff
package CGI::Out;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(out dout flushout croak carp confess savequery);
@EXPORT_OK = qw(carpout $out);
use strict;
use vars qw($out $mailto $usedby);
my $error = 0;
my @saveA;
my $pwd;
my $zero;
my %e;
my $query;
my $debug = '';
use Cwd;
sub error
{
my (@bomb) = @_;
my $pe = $@;
my $se = $!;
$error = 1;
require CGI::BigDeath;
bigdeath($pe, $se, "@bomb", $out,
\%e, $query, $pwd, $zero,
\@saveA, $debug, $mailto);
}
BEGIN {
require Carp;
require CGI::Carp;
*warn = \&{CGI::Carp::warn};
*carpout = \&{CGI::Carp::carpout};
$main::SIG{'__DIE__'}= \&CGI::Out::fakedie;
$out = '';
@saveA = @ARGV;
$pwd = getcwd();
$zero = $0;
%e = %ENV;
# idiom.com specific feature:
$pwd = "$Chroot::has_chrooted$pwd"
if defined $Chroot::has_chrooted;
$usedby = join(':',(caller(2))[1,2]);
&error("Cannot combine CGI::Out ($usedby) and CGI::Wrap ($CGI::Wrap::usedby)")
if defined @CGI::Wrap::EXPORT;
}
sub savequery
{
($query) = (@_);
}
sub debug
{
$debug .= join('',@_);
return '';
}
sub out
{
$out .= join('',@_);
return '';
}
sub flushout
{
$out = '';
}
sub croak
{
error Carp::shortmess @_;
CGI::Carp::die(Carp::shortmess @_);
}
sub confess
{
error Carp::longmess @_;
CGI::Carp::die(Carp::longmess @_);
}
sub fakedie
{
return if $;
delete $main::SIG{'__DIE__'};
exit(1) if $error;
error Carp::shortmess @_;
goto &CGI::Carp::die;
}
END {
print $out unless $error;
}
1;
__END__
=head1 NAME
CGI::Out - buffer output when building CGI programs
( run in 1.260 second using v1.01-cache-2.11-cpan-ceb78f64989 )