in reply to Solving lisp-style terms

*cough*

use Data::Postponed 'postpone'; $_ = postpone( 1 ); $_ += 1; $_ *= 7; $_ *= 2; $_ += 3; $_ += 4; $_ += postpone( 6 ) / 2; # so the (/ 6 2) isn't flattened out. # Produces some lisp-like output $_->Dump; # (+ (+ (+ (* (* (+ 1 1) 7 ) 2) 3) 4) (/ 6 2) )