emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] evaluation of perl in babel


From: dmg
Subject: Re: [O] evaluation of perl in babel
Date: Sun, 24 Feb 2013 13:25:58 -0800

Mm, I didn't include :results value

I think that :results value should do what it does now: return the
value of the last expression.

--dmg

On Sun, Feb 24, 2013 at 1:08 PM, D M German <address@hidden> wrote:
>
> Hi Everybody,
>
> I looked a bit more onto the way that perl is evaluated. I know the
> support of perl is minor. I understand that, so please, don't see this
> message as a complaint, so this is more for discussion and potential
> improvements of the Perl support in Babel.
>
> One of the things I have noticed is that the way that Babel handles the
> results coming from the code is not the best.
>
> Let me elaborate:
>
> At the bottom you will find a set of test that stress the different
> :results types.
>
> There are some bugs. For example, the interpretation of :results table,
> vector and list.
>
> But I think the main problem comes from the way that Babel expects the
> result. In Babel, and except for :results output, the last expression in
> perl is considered the input to the results. This is implementing by
> saving the last expression into a variable, and printing each value
> separated by a "\n" (including the last). So basically, org takes the
> last expression, and outputs them to the babel input file one per line.
>
> This places some constraints. First, it is not currently capable of
> dealing with two dimensional arrays. Second, it makes it hard to create
> complex output (such as HTML or LaTeX), and third, it is hard to debug
> without first printing the value of the array (this output would be lost
> during the evaluation, so it would have be debugged outside org).
>
> I feel that a better approach is to use std output as the default input
> to any of these :results types, and then try to parse them into the
> corresponding :results types. This will allow the creation of HTML and
> LaTeX from perl (which the current implementation does not allow).
>
> So recapitulating, my suggestion is that perl should use STDOUT as the
> output of the snippet in any :results type, rather than the result of
> the last expression.
>
> I know this will break backwards compatibility. One solution is to keep
> the current src perl and add a new perl_stdout mode (or something like
> that) that implements this.
>
> --dmg
>
>
>
> ----------------------------------------------------------------------
> #+begin_src perl :results output
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS:
> : Test
>
> #+name: t_output_raw
> #+begin_src perl :results raw
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_raw
> 1
> 2
>
> #+name: t_output_table
> #+begin_src perl :results table
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_table
> | 1\n2\n |
>
> #+name: t_output_vector
> #+begin_src perl :results vector
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_vector
> | 1\n2\n |
>
>
> #+name: t_output_list
> #+begin_src perl :results list
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_list
> #+begin_example
> - 1
> 2
> #+end_example
>
> #+name: t_output_org
> #+begin_src perl :results org
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_org
> #+BEGIN_SRC org
> 1
> 2
> #+END_SRC
>
> #+name: t_output_html
> #+begin_src perl :results html
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_html
> #+BEGIN_HTML
> 1
> 2
> #+END_HTML
>
> #+name: t_output_latex
> #+begin_src perl :results latex
> print "Test\n";
> (1, 2)
> #+end_src
>
> #+RESULTS: t_output_latex
> #+BEGIN_LaTeX
> 1
> 2
> #+END_LaTeX
> ----------------------------------------------------------------------
>
>
> --
> Daniel M. German                  "I see no good reason why the
>                                    views given in this volume
>                                    should shock the religious
>    Charles Darwin ->               feelings of anyone."
> http://turingmachine.org/
> http://silvernegative.com/
> dmg (at) uvic (dot) ca
> replace (at) with @ and (dot) with .
>
>



-- 
--dmg

---
Daniel M. German
http://turingmachine.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]