source: for-distributions/trunk/bin/windows/perl/lib/Math/BigFloat/Trace.pm@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

File size: 1.2 KB
Line 
1#!/usr/bin/perl -w
2
3package Math::BigFloat::Trace;
4
5require 5.005_02;
6use strict;
7
8use Exporter;
9use Math::BigFloat;
10use vars qw($VERSION @ISA $PACKAGE @EXPORT_OK
11 $accuracy $precision $round_mode $div_scale);
12
13@ISA = qw(Exporter Math::BigFloat);
14
15$VERSION = 0.01;
16
17use overload; # inherit overload from BigFloat
18
19# Globals
20$accuracy = $precision = undef;
21$round_mode = 'even';
22$div_scale = 40;
23
24sub new
25{
26 my $proto = shift;
27 my $class = ref($proto) || $proto;
28
29 my $value = shift;
30 my $a = $accuracy; $a = $_[0] if defined $_[0];
31 my $p = $precision; $p = $_[1] if defined $_[1];
32 my $self = Math::BigFloat->new($value,$a,$p,$round_mode);
33
34# remember, downgrading may return a BigInt, so don't meddle with class
35# bless $self,$class;
36
37 print "MBF new '$value' => '$self' (",ref($self),")";
38 return $self;
39}
40
41sub import
42 {
43 print "MBF import ",join(' ',@_);
44 my $self = shift;
45
46 # we catch the constants, the rest goes go BigFloat
47 my @a = ();
48 foreach (@_)
49 {
50 push @a, $_ if $_ ne ':constant';
51 }
52 overload::constant float => sub { $self->new(shift); };
53
54 Math::BigFloat->import(@a); # need it for subclasses
55# $self->export_to_level(1,$self,@_); # need this ?
56 }
57
581;
Note: See TracBrowser for help on using the repository browser.