The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Math::SimpleVariable - simple representation of mathematical variables


  use Math::SimpleVariable;

  # Make a variable
  my $foo = new Math::SimpleVariable(name => 'foo', value => 0.3);

  # Some of the available accessors
  # Note that many are identical, but you might want to change
  # their behaviour in derived variable classes...
  my $name = $foo->name();       # yields 'foo'
  print $foo->stringify(), "\n"; # prints 'foo'
  my $id = $foo->id();           # yields 'foo'
  my $value = $foo->value();     # yields 0.3
  print $foo->evaluate(), "\n";  # prints 0.3

  # Make a second variable
  my $bar = $foo->clone();
  $bar->{name} = 'bar';      # changes the name (and as a consequence the id())
  print $bar->value(), "\n"; # prints the same value, 0.3


Math::SimpleVariable is a simple representation of mathematical variables, with an obligatory name and an optional value. This class on itself might not seem very useful at first sight, but you might want to derive different types of variables for some application. That way, objects of the derived variable class can be accessed interchangeably with the here provided protocols.

Math::SimpleVariable has two data fields - name and value - that can be accessed and modified as if the variable object is a hash. E.g.

    $var->{name} = 'foo';

sets the name of the object $var to 'foo', and

    my $val = $var->{value};

reads the value of the $var object into $val.

In addition, the following accessor methods are available for Math::SimpleVariable objects:


Returns $var->{name}


Returns $var->name() for Math::SimpleVariable objects. The purpose of id() is to provide some unique identifier when using variables in some higher level concept, e.g. a matrix representation of a set of equations. Depending on your needs, you might want to change the implementation of id() in derived classes.


Returns a printable representation of the variable. For Math::SimpleVariable objects, returns $var->name(). Again, you might want to override this for derived classes.


Returns $var->{value}


Returns a numerical evaluation of the variable. For Math::SimpleVariable objects, returns $var->value(). You might want to override this behaviour in derived classes, athough I cannot think of any place where this might come in useful :-). evaluate() is still there for reasons of orthogonality.




This is CVS $Revision: 1.6 $ of Math::Simplevariable, last edited at $Date: 2001/10/31 12:38:39 $.


Wim Verhaegen <>


Copyright (C) 2001 Wim Verhaegen. All rights reserved. This program is free software; you may redistribute and/or modify it under the same terms as Perl itself.