2012-08-26 15 views
5

Considere el siguiente fragmento de perl en org-babel, que usa <STDIN>.¿Cómo encauzar entrada a src_block como stdin?

** Ans 2 
    #+begin_src perl :results output 
    use Math::Trig; 
    $rad = <STDIN>; 
    $circumference = 2*pi*$rad; 
    print "Circumference of circle is $circumference"; 
    #+end_src 

¿Es posible canalizar la entrada a este bloque desde otro bloque?

Di:

#+begin_src text :name test-input 
    12.5 
#+end_src 

Respuesta

3

Puede pasar $rad directamente al script Perl de un bloque #+results: ver passing arguments to code blocks en el manual.

que daría a

#+begin_src perl :results output :var rad=test-input 

Usando como entrada

#+results: test-input 
: 12.5 
+0

Este parece ser exactamente la respuesta. No estoy seguro de por qué dices "No lo creo". – Dodgie

+0

Tienes razón, adapté la respuesta. (Originalmente era porque estamos usando un bloque 'results', y no un' begin_src text' uno - vea su pregunta antes de la edición.) –

+0

Ah, está bien. Guay. – Dodgie

Cuestiones relacionadas