use strict; use warnings; use Data::Dump qw(dump); $_ = $0; my %h; sub f { print('->f()') . '.0'; } $h{ f } = ' F'; $h{ +f } = ' +F'; $h{+ f } = '+ F'; $h{ -f } = ' -F'; $h{- f } = '- F'; $h{ f()} = ' ()'; $h{ -f()} = '-()'; $h{- f()} = '-()'; $h{ +f()} = '+()'; print "\n",dump(\%h),"\n"; #### ->f()->f()->f()->f()->f() { "-1" => "-()", "-f" => "- F", "1" => "-()", "1.0" => "+()", "f" => " F" } #### use strict; use warnings; use Data::Dump qw(dump); $_ = $0; sub f { print('->f()') . '.0'; } my %h = ( f => ' F', +f => ' +F', + f => '+ F', -f => ' -F', - f => '- F', f() => ' ()', -f() => '-()', - f() => '-()', +f() => '+()', ); print "\n",dump(\%h),"\n"; #### ->f()->f()->f() { "-1" => "-()", "-f" => "- F", "1" => "-()", "1.0" => "+()", "f" => "+ F" }