This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
The first big import towards 5.8.1, @18078. Please do NOT
[perl5.git] / t / lib / Math / BigFloat / Subclass.pm
1 #!/usr/bin/perl -w
2
3 package Math::BigFloat::Subclass;
4
5 require 5.005_02;
6 use strict;
7
8 use Exporter;
9 use Math::BigFloat(1.30);
10 use vars qw($VERSION @ISA $PACKAGE
11             $accuracy $precision $round_mode $div_scale);
12
13 @ISA = qw(Exporter Math::BigFloat);
14
15 $VERSION = 0.03;
16
17 use overload;           # inherit overload from BigInt
18
19 # Globals
20 $accuracy = $precision = undef;
21 $round_mode = 'even';
22 $div_scale = 40;
23
24 sub 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         # Store the floating point value
33         my $self = Math::BigFloat->new($value,$a,$p,$round_mode);
34         bless $self, $class;
35         $self->{'_custom'} = 1; # make sure this never goes away
36         return $self;
37 }
38
39 BEGIN
40   {
41   *objectify = \&Math::BigInt::objectify;
42   }
43
44 1;