From a0d0e21ea6ea90a22318550944fe6cb09ae10cda Mon Sep 17 00:00:00 2001 From: Larry Wall Date: Mon, 17 Oct 1994 23:00:00 +0000 Subject: perl 5.000 [editor's note: this commit combines approximate 4 months of furious releases of Andy Dougherty and Larry Wall - see pod/perlhist.pod for details. Andy notes that; Alas neither my "Irwin AccuTrack" nor my DC 600A quarter-inch cartridge backup tapes from that era seem to be readable anymore. I guess 13 years exceeds the shelf life for that backup technology :-(. ] --- lib/Carp.pm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 lib/Carp.pm (limited to 'lib/Carp.pm') diff --git a/lib/Carp.pm b/lib/Carp.pm new file mode 100644 index 0000000000..5daba5c289 --- /dev/null +++ b/lib/Carp.pm @@ -0,0 +1,37 @@ +package Carp; + +# This package implements handy routines for modules that wish to throw +# exceptions outside of the current package. + +require Exporter; +@ISA = Exporter; +@EXPORT = qw(confess croak carp); + +sub longmess { + my $error = shift; + my $mess = ""; + my $i = 2; + my ($pack,$file,$line,$sub); + while (($pack,$file,$line,$sub) = caller($i++)) { + $mess .= "\t$sub " if $error eq "called"; + $mess .= "$error at $file line $line\n"; + $error = "called"; + } + $mess || $error; +} + +sub shortmess { + my $error = shift; + my ($curpack) = caller(1); + my $i = 2; + my ($pack,$file,$line,$sub); + while (($pack,$file,$line,$sub) = caller($i++)) { + return "$error at $file line $line\n" if $pack ne $curpack; + } + longmess $error; +} + +sub confess { die longmess @_; } +sub croak { die shortmess @_; } +sub carp { warn shortmess @_; } + -- cgit v1.2.1