my %h = ( decimalhex => sub{return sprintf("0x%x", shift)}, decimalbinary => sub{sprintf("%b", shift)}, hexdecimal => sub{return sprintf("%d", shift)}, ); my $var = ; print $h{decimalhex}($var), "\n"; print $h{decimalbinary}($var), "\n"; print $h{hexdecimal}($var), "\n"; #### sub dechex { my $number = shift @_; my $string = sprintf "0x%x", $number; return $string; } sub decbin { my $number = shift @_; my $string = sprintf "%b", $number; return $string; } sub hexdec { my $number = shift @_; my $string = sprintf "%d", $number; return $string; } my( $dh, $db, $hd ) = ( dechex($val), decbin($val), hexdec($val) ); print $dh, "\n" print $db, "\n"; print $hd, "\n";