2012-08-06 21 views
8

में कोड कैसे डालना है मैं पर्ल इनलाइन :: पायथन लाइब्रेरी सीख रहा हूं। cpan वेबसाइट के उदाहरण में, हमपर्ल इनलाइन :: पायथन मॉड्यूल, कोड को स्ट्रिंग

print "9 + 16 = ", add(9, 16), "\n"; 
    print "9 - 16 = ", subtract(9, 16), "\n"; 

    use Inline Python => <<'END_OF_PYTHON_CODE'; 
    def add(x,y): 
     return x + y 

    def subtract(x,y): 
     return x - y 

    END_OF_PYTHON_CODE 

ताकि मैं क्रम में अजगर कोड बना सकते हैं अजगर कोड स्ट्रिंग में डाल करने के लिए यह संभव है? उदाहरण के लिए, कुछ की तरह:

my $python_code = " 
def add(x,y): 
    return x + y 
"; 
print $python_code; 
use Inline Python => "$python_code"; 
print "9 + 16 = ", add(9, 16), "\n"; 

हम एक परियोजनाओं है कि गतिशील रूप से रनटाइम पर अजगर कार्यों बनाएगा है। और हम इन कार्यों को कॉल करना चाहते हैं। क्या py_eval() जाने का रास्ता है? अग्रिम में धन्यवाद।

+0

आप एक अजगर दुभाषिया embedding रहे हैं? –

+0

हां, तरह का। हमारे perl प्रोग्राम को रनटाइम पर बनाए गए पायथन फ़ंक्शन चलाने की आवश्यकता है। – biajee

उत्तर

4

Inline::Python के साथ कोई अनुभव है, लेकिन Inline::Cyou can use the bind function to set code at runtime साथ है, तो हो सकता है यह काम करेगा:

my $python_code = " 
def add(x,y): 
    return x + y 
"; 
print $python_code; 
Inline->bind(Python => $python_code); 
print "9 + 16 = ", add(9, 16), "\n"; 
+0

आप सही हैं। यह काम। बहुत बहुत धन्यवाद। – biajee