2012-08-26 11 views
5

Rozważ poniższy fragment perla w org-babel, który używa <STDIN>.Jak potokować wejście do src_block jako 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 

Czy można podłączyć wejście do tego bloku z innego bloku?

Powiedz:

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

Odpowiedz

3

można przekazać $rad bezpośrednio do skryptu perla z #+results bloku: patrz passing arguments to code blocks w instrukcji.

To dałoby

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

Korzystanie jako wejście

#+results: test-input 
: 12.5 
+0

Wydaje się to dokładnie w odpowiedzi. Nie wiem, dlaczego mówisz "nie sądzę". – Dodgie

+0

Masz rację, dostosowałem odpowiedź. (Pierwotnie było to spowodowane tym, że używamy bloku 'results', a nie' begin_src text "- zobacz jego pytanie przed edycją.) –

+0

Ah, okay. Chłodny. – Dodgie