q='''$q=.0; if( defined($x) ) { print (("Bash", "Python", "Ruby")[$x], "\n"); } else { print "Perl\n"; } __DATA__ '+%{ echo "\$x=0;$q" | perl exit 0 ''' import subprocess child = subprocess.Popen("perl", stdin=subprocess.PIPE) child.stdin.write('$x=1;' + q[3:]) child.wait() '''}; IO.popen("perl", "w") {|io| io.write('$x=2;' + q[3..-1]); io.close_write } unused_data = %{ UNUSED DATA }#'''