use strict; use warnings; use Test::More 'no_plan'; package my_temp_convert; my $curr_scale=0; #centigrade, 1=faren my $cur_ctemp=0; sub set_scale{ $curr_scale=shift} sub set_temp{ $cur_ctemp =shift} sub c {return $cur_ctemp;} sub f {return 32+(9*$cur_ctemp)/5} package main; *set_scale = \&my_temp_convert::set_scale; *set_temp = \&my_temp_convert::set_temp; *c = \&my_temp_convert::c; *f = \&my_temp_convert::f; set_scale(1); set_temp(0); is( f(), 32, 'f() returns 32' ); is( c(), 0, 'c() returns 0' ); #### my $temp = My::Temp::Thing->new(); $temp->set_c(0); is( $temp->get_f(), 32, '0 c is 32 f' );