CGI-Out
view release on metacpan or search on metacpan
lib/CGI/Wrap.pm view on Meta::CPAN
# Copyright (c) 1996, David Muir Sharnoff
package CGI::Wrap;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(out dout flushout savequery run);
@EXPORT_OK = qw($out);
$VERSION = 2004.1023;
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;
BEGIN {
$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]);
if (defined @CGI::Out::EXPORT) {
require CGI::BigDeath;
bigdeath('', '', "Cannot combine CGI::Wrap ($usedby) with CGI::Out ($CGI::Out::usedby)",
\%e, $query, $pwd, $zero, \@saveA, $debug, $mailto);
exit(1);
}
}
sub savequery
{
($query) = (@_);
}
sub debug
{
$debug .= join('',@_);
return '';
}
sub out
{
$out .= join('',@_);
return '';
}
sub flushout
{
$out = '';
}
sub run
{
my ($func, @args) = @_;
my $r;
my @r;
if (ref $func) {
if (wantarray) {
@r = eval { &$func(@args) };
} else {
$r = eval { &$func(@args) };
}
} else {
if (wantarray) {
@r = eval "$func @args";
} else {
$r = eval "$func @args";
}
}
if ($@) {
my $pe = $@;
my $se = $!;
require CGI::BigDeath;
require CGI::Carp;
bigdeath('see above', $se, $pe, $out,
\%e, $query, $pwd, $zero,
\@saveA, $debug, $mailto);
}
print $out;
( run in 3.090 seconds using v1.01-cache-2.11-cpan-5a3173703d6 )