2012-08-26 14 views
5

org-babel में perl के निम्न स्निपेट पर विचार करें, जो <STDIN> का उपयोग करता है।stdin के रूप में src_block में इनपुट पाइप कैसे करें?

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

क्या इस ब्लॉक में किसी अन्य ब्लॉक से इनपुट पाइप करना संभव है?

कहते हैं:

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

उत्तर

3

आप एक #+results ब्लॉक से पर्ल स्क्रिप्ट के लिए सीधे $rad पारित कर सकते हैं: मैनुअल में passing arguments to code blocks देखते हैं।

कि

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

देना होगा इनपुट

#+results: test-input 
: 12.5 
+0

के रूप में उपयोग करते हुए यह ठीक जवाब की तरह लगता है। मुझे यकीन नहीं है कि आप क्यों कहते हैं "मुझे ऐसा नहीं लगता"। – Dodgie

+0

आप सही हैं, मैंने जवाब अनुकूलित किया। (मूल रूप से ऐसा इसलिए था क्योंकि हम 'परिणाम' ब्लॉक का उपयोग कर रहे हैं, न कि 'start_src text'' - संपादन से पहले उसका प्रश्न देखें।) –

+0

आह, ठीक है। ठंडा। – Dodgie