2012-11-15 2 views
5

के बराबर है क्या पर्ल के $_ फ़ंक्शन के बराबर है? मैं सी # में कुछ पुरानी पर्ल स्क्रिप्ट्स को फिर से लिख रहा हूं और मैंने कभी भी कोई पर्ल नहीं सीखा। यहाँ मैं क्या पता लगाने के लिए सभी की

sub copyText { 
     while($_[0]){ 
      $_[1]->Empty(); 
      $_[0] = $_[1]->IsText(); 
      sleep(1); 
     } 
+0

हम में से उन लोगों के लिए जो सी # जानते हैं, लेकिन पेर्ल नहीं, क्या आप हमें बता सकते हैं कि '$ _' क्या करता है? या शायद बताएं कि आप क्या करने की कोशिश कर रहे हैं। एक भाषा से दूसरे भाषा में सख्त रूपांतरण करने का सबसे अच्छा परिणाम नहीं हो सकता है। यह एक हथौड़ा के साथ एक पेंच का उपयोग करने के लिए पूछने की तरह हो सकता है। उपरोक्त में – cadrell0

+3

@ cadrell0, '$ _' का उपयोग नहीं किया जाता है। '$ _ [0]' और '$ _ [1]' सरणी के पहले और दूसरे तत्व हैं '@ _'। '@ _' सब को पास किए गए तर्कों की सूची है। '@ _' के तत्व प्रतियां (मूल्य से गुजरने) की बजाय वास्तविक तर्क (रेफरी द्वारा पास) के लिए अलियाकृत हैं। – ikegami

+0

@ikegami यही कारण है कि मैं perl का उपयोग नहीं करता :)। '$ _ [0] 'सरणी' @ _' का संदर्भ देता है? या ओपी का कोड गलत है? – cadrell0

उत्तर

11

सबसे पहले कोशिश कर रहा हूँ का एक उदाहरण, $_ एक समारोह नहीं है। यह सिर्फ एक साधारण चर है (जो कई बिल्टिन द्वारा पढ़ा और बदला जाता है)।

दूसरा, आपके द्वारा पोस्ट किया गया कोड $_ का उपयोग नहीं करता है। यह पैरामीटर सूची @_ के तत्वों तक पहुंच रहा है।

कोड तुम्हें तैनात किया जाएगा का एक और अधिक अधिक पठनीय संस्करण:

sub copyText { 
    my ($arg1, $arg2) = @_; 
    while ($arg1) { 
     $arg2->Empty(); 
     $arg1 = $arg2->IsText(); 
     sleep(1); 
    } 

    $_[0] = $arg1; # arg1 is passed by reference 
} 
  • ARG1 एक बूलियन संदर्भ द्वारा पारित कर दिया है।
  • arg2 Empty नामक विधि के साथ किसी प्रकार का ऑब्जेक्ट है और एक नाम IsText है।

क्षमा करें, मुझे सी # पता नहीं है, लेकिन उम्मीद है कि आप इसके साथ आगे बढ़ सकते हैं।

+0

धन्यवाद इससे मुझे बहुत मदद मिली! – pyCthon

+1

'$ arg1' एक बूलियन नहीं हो सकता है। कोई मूल्य पर्ल में सही या गलत के लिए मूल्यांकन करता है। मैं 'IsText' नाम के आधार पर अनुमान लगा रहा हूं और चूंकि इसे केवल बूलियन के रूप में उपयोग किया जाता है। – ikegami

+0

हाँ यह एक पुरानी खबर स्क्रैपर है, इसलिए मुझे लगता है कि यह देखने के लिए एक चेक था कि क्या यह कुछ गलत उठाया गया है – pyCthon

0

पर्ल के $_ समारोह

यह एक समारोह नहीं है। यह एक सर्वनाम अर्थ है 'यह'।

एक और विशेष चर @_ है, जो एक सर्वनाम अर्थ है 'उन्हें'।

सी # में कोई एनालॉग नहीं है।

+0

संगत रूप से $ _ [0] का अर्थ है उनकी 0 वीं अनुक्रमणिका। स्केलर (@_) उनकी गिनती इत्यादि देता है। – singingfish