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" }