Oh, right, it gets a bit more complicated if you want better control
of the tabulated blocks, i.e. border separation and spacing between
the table cells. Then you first need to wrap them in a <div>. You
could do that with literal HTML, or (my preference) with
org-special-blocks. Use CSS to display the div as a table, and set
border separation and spacing on it. Reworked example:
#+title: Side by side code blocks
#+style: <style>.parallel {display: table; border-collapse: separate;
border-spacing: 2px 2px;}
#+style: pre.src {display: table-cell}</style>
How to say hello in two languages:
#+begin_parallel
#+name: Perl_hello
#+begin_src perl :results output
# Perl
sub say_hello {
print "Hello, world";
}
say_hello;
#+end_src
#+name: Python_hello
#+begin_src python :results output
# Python
def say_hello():
print("Hello, world")
say_hello()
#+end_src
#+end_parallel