C:\test>perl -e"{my$x=0; sub X{++$x;\$x}} print qq[${X()}${X()}${X()}\n]"
223
####
C:\test>perl -e"{my$x=0; sub X{++$x;\$x}} print qq[${X()} ${X()}${X()}\n]"
1 23
##
##
>perl -wMstrict -le
"{ my $x = 0; sub X () { $x = $x + 1; return \$x; } }
;;
print ${X()};
print ${X()} . ${X()};
;;
print ${X;} . ${X;} . ${X;};
print ${X;} . 'x' . ${X;} . ${X;};
"
1
33
556
7x89
>perl -wMstrict -MO=Deparse,-p,-q -le
"{ my $x = 0; sub X () { $x = $x + 1; return \$x; } }
;;
print ${X()};
print ${X()} . ${X()};
;;
print ${X;} . ${X;} . ${X;};
print ${X;} . 'x' . ${X;} . ${X;};
"
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use strict 'refs';
{
(my $x = 0);
sub X () {
($x = ($x + 1));
return((\$x));
}
;
}
print(${X;});
print((${X;} . ${X;}));
print(((${X;} . ${X;}) . ${X;}));
print((((${X;} . 'x') . ${X;}) . ${X;}));
-e syntax OK