in reply to Dynamic Hash value

You can achieve this using tie on the hash entries you wish to be dynamic:

#! perl -slw use strict; use Data::Dump qw[ pp ]; { package Tie::Scalar::Dynamic; sub TIESCALAR { my( $class, $coderef ) = @_; return bless $coderef, $class; } sub FETCH { my $this = shift; return $this->(); } sub STORE { die 'This tied variable is readonly'; } } my( $ini, $last ) = ( 4, 2 ); my %result = ( SAS1 => 0, SAS2 => 0, SAS3 => 0, ); tie $result{ SAS1 }, 'Tie::Scalar::Dynamic', sub{ $ini - $last }; tie $result{ SAS2 }, 'Tie::Scalar::Dynamic', sub{ $last - $ini }; tie $result{ SAS3 }, 'Tie::Scalar::Dynamic', sub{ $ini - $last }; pp \%result; ( $ini, $last ) = ( 123, -456 ); pp \%result; __END__ c:\test>835979.pl { SAS1 => 2, SAS2 => -2, SAS3 => 2 } { SAS1 => 579, SAS2 => -579, SAS3 => 579 }

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP an inspiration; A true Folk's Guy