Xavier Noria graced us by uttering: > Daniel Carrera wrote: >> def twice >> yield >> yield >> end >> twice { puts "Ruby rocks!" } > > sub twice(&) { > my $sub = shift; > &$sub; > &$sub; > } > twice { print "Ruby rocks!\n" } How about solving that puts() gripe you mentioned: sub twice (&) { my $sub = shift; &$sub; &$sub; } sub puts { print "$_\n" for @_ } twice { puts "Ruby rocks!" } # Now in Ruby *AND* Perl! Ugly, but flexible. No point condemning a language just because it doesn't use an entirely different function to tack a newline onto arguments. Much better to discriminate based on appearances. ;) Tim Hammerquist -- guru, n: a computer owner who can read the manual.