my %h = ( sub { return sprintf ("0x%x", shift) }, sub { return sprintf ("%b", shift) }, sub { return sprintf ("%d", shift) }, ); #### $result = process_args(1, 2, 3, 4); print "Result is $result \n"; sub process_args { my $c = shift: print "Arg array is: @_ \n"; my $d = shift; print "First argument is $c \n"; print "second argument if $d \n"; print "Arg array is now: @_ \n"; return $c + $d; } #### my %h = ( hex => sub { return sprintf ("0x%x", shift) }, bin => sub { return sprintf ("%b", shift) }, dec => sub { return sprintf ("%d", shift) }, ); #### my $hex_val = $h{hex}->(5); #### print "Arg array is now: @_ \n";