पर्ल और PHP के बीच अंतर [बंद]


101

मैं पर्ल 5 सीखने की योजना बना रहा हूं और जैसा कि मैंने अब तक केवल PHP का उपयोग किया है, मैं थोड़ा जानना चाहता था कि भाषाएं एक-दूसरे से कैसे भिन्न होती हैं।

जैसा कि PHP ने "पर्ल हैक्स" के एक सेट के रूप में शुरू किया था, यह स्पष्ट रूप से कुछ पर्ल फीचर्स का क्लोन है।

  • वाक्यविन्यास में मुख्य अंतर क्या हैं? क्या यह सच है कि पर्ल के पास आपके पास कुछ व्यक्त करने के अधिक विकल्प और तरीके हैं?

  • Perl का उपयोग डायनामिक वेबसाइटों के लिए बहुत बार क्यों नहीं किया जाता है? क्या PHP अधिक लोकप्रियता हासिल की?


2
जिज्ञासु होने के नाते, मुझे पूछना होगा: यदि आप पीएचपी के बाद अपनी दूसरी भाषा को स्वतंत्र रूप से चुन सकते हैं, तो अधिक आधुनिक पायथन या रूबी के बजाय पर्ल क्यों?
झोलस्टर

37
अजगर और रूबी के अधिक आधुनिक होने का आधार क्या है?
जोशुआ अंशयोगी 22

2
मुझे नहीं लगता कि लोगों को भाषाओं की तुलना करने की कोशिश करनी चाहिए। यह केवल भ्रम पैदा करेगा।
बेन शेलॉक

11
@ बीन: सिंटैक्स की तुलना सीमित उपयोगिता है। तुलनात्मक विशेषताओं से नई भाषाओं को सीखने में मदद मिल सकती है।
outis

1
मेरा मानना ​​है कि डिजाइनरों ने इसके लिए क्या कल्पना की है, उसके आधार पर हर भाषा की ताकत है; विशेष रूप से उपयोग के मामलों के एक सेट पर आधारित है। इसलिए भाषाओं की तुलना करना अक्सर पूर्वाग्रह और भ्रामक है
कोडएंगल

जवाबों:


284

पर्ल और PHP एक जैसे से अलग हैं। आइए पर्ल 5 पर विचार करें, क्योंकि पर्ल 6 अभी भी विकास के अधीन है। कुछ अंतर, विषय के आधार पर समूहीकृत:

  • पर्ल के पास रेग्युलर रेग्युलर एक्सप्रेशन सपोर्ट है, जिसमें रेगेक्सप शाब्दिक भी शामिल है। PHP एक विस्तार के रूप में पर्ल के regexp कार्यों का उपयोग करती है।
  • पर्ल काफी कुछ और है ऑपरेटरों सहित, मिलान ( =~, !~), बोली की तरह ( qw, qxऔर सी।), घातांक ( **), स्ट्रिंग पुनरावृत्ति ( x) और सीमा ( ..और ...)। PHP के पास कुछ ऑपरेटर हैं पर्ल, जैसे त्रुटि दमन ऑपरेटर ( @), instanceof(हालांकि पर्ल के पास Universal::isaविधि नहीं है) और clone
  • PHP में, newएक ऑपरेटर है। पर्ल में, यह पैकेज में परिभाषित ऑब्जेक्ट निर्माण सबरूटिन का पारंपरिक नाम है, जहां तक ​​भाषा का संबंध है, कुछ भी विशेष नहीं है।
  • पर्ल लॉजिकल ऑपरेटर्स अपनी दलीलें लौटाते हैं, जबकि वे PHP में बूलियन्स लौटाते हैं । प्रयत्न:

    $foo = '' || 'bar';

    प्रत्येक भाषा में। पर्ल में, आप $foo ||= 'default'$ फू को एक मूल्य पर सेट करने के लिए भी कर सकते हैं यदि यह पहले से सेट नहीं है। PHP में ऐसा करने का सबसे छोटा तरीका है $foo = isset($foo) ? $foo : 'default';(अद्यतन, PHP 7.0 में आप कर सकते हैं $foo = $foo ?? 'default')

  • पर्ल चर नाम अंतर्निहित प्रकार को इंगित करते हैं, जिनमें से पर्ल में तीन होते हैं, और प्रकार विनिर्देशक नाम का हिस्सा होता है (जिसे " sigil " कहा जाता है ), इसलिए या $fooसे भिन्न चर है ।@foo%foo
  • (पिछले बिंदु से संबंधित) पर्ल में स्केलर्स, सरणियों, हैश, कोड, फ़ाइल / निर्देशिका हैंडल और प्रारूपों के लिए अलग-अलग प्रतीक तालिका प्रविष्टियां हैं। प्रत्येक का अपना नाम स्थान है।
  • पर्ल प्रतीक तालिका तक पहुंच देता है , हालांकि हेरफेर करना दिल के बेहोश होने के लिए नहीं है। PHP में, प्रतीक तालिका में हेरफेर संदर्भ और extractफ़ंक्शन बनाने तक सीमित है ।
  • ध्यान दें कि "संदर्भ" का PHP और पर्ल में एक अलग अर्थ है। PHP में, संदर्भ प्रतीक तालिका उपनाम हैं। पर्ल में, संदर्भ स्मार्ट पॉइंटर्स हैं।
  • पर्ल में पूर्णांक-अनुक्रमित संग्रह (सरणियाँ) और स्ट्रिंग अनुक्रमित संग्रह (हैश) के लिए विभिन्न प्रकार हैं। PHP में, वे एक ही प्रकार के होते हैं: एक साहचर्य सरणी / आदेशित नक्शा
  • पर्ल सरणियों को विरल नहीं किया जाता है: एक तत्व को सूचकांक के साथ सेट करना जो कि सरणी के वर्तमान आकार से बड़ा है, सभी हस्तक्षेप करने वाले तत्वों को सेट करेगा undefined(देखें perldata )। PHP सरणियों विरल हैं; एक तत्व सेट करना हस्तक्षेप करने वाले तत्वों को सेट नहीं करेगा।
  • पर्ल मूल रूप से हैश और एरे स्लाइस का समर्थन करता है, और स्लाइस असाइन करने योग्य होते हैं, जिसमें सभी प्रकार के उपयोग होते हैं । PHP में, आप array_sliceएक स्लाइस निकालने के array_spliceलिए और एक स्लाइस को असाइन करने के लिए उपयोग करते हैं।
  • आप थोड़ा सा जादू के लिए PHP में सबस्क्रिप्ट ऑपरेटर के तर्क को छोड़ सकते हैं । पर्ल में, आप सबस्क्रिप्ट नहीं छोड़ सकते।
  • पर्ल हैश हैं अव्यवस्थित
  • पर्ल के पास बड़ी संख्या में पूर्वनिर्धारित और जादू चर हैं । PHP के पूर्वनिर्धारित चर का एक अलग उद्देश्य है।
  • पर्ल के स्टेटमेंट मॉडिफ़ायर हैं : कुछ कंट्रोल स्टेटमेंट्स को एक स्टेटमेंट के अंत में रखा जा सकता है।
  • पर्ल कीवर्ड के माध्यम से डायनेमिक स्कूपिंग का समर्थन करता है local
  • इसके अलावा, पर्ल में वैश्विक, लेक्सिकल (ब्लॉक), और पैकेज गुंजाइश है । PHP में ग्लोबल, फंक्शन, ऑब्जेक्ट, क्लास और नेमस्पेस स्कोप है
  • पर्ल में, चर डिफ़ॉल्ट रूप से वैश्विक होते हैं। PHP में, फ़ंक्शन में चर डिफ़ॉल्ट रूप से स्थानीय होते हैं।
  • पर्ल फ़ंक्शन के माध्यम से स्पष्ट पूंछ कॉल का समर्थन gotoकरता है।
  • पर्ल के प्रोटोटाइप PHP के प्रकार संकेत की तुलना में फ़ंक्शन तर्कों के लिए अधिक सीमित प्रकार की जाँच प्रदान करते हैं । नतीजतन, प्रोटोटाइप टाइपिंग की तुलना में अधिक सीमित उपयोगिता के हैं।
  • पर्ल में, अंतिम मूल्यांकित कथन को एक सबरूटीन के मान के रूप में लौटाया जाता है यदि कथन एक अभिव्यक्ति है (अर्थात इसका मूल्य है), भले ही रिटर्न स्टेटमेंट का उपयोग न किया गया हो। यदि अंतिम विवरण एक अभिव्यक्ति नहीं है (जैसे कि कोई मान नहीं है), जैसे कि लूप, रिटर्न मान अनिर्दिष्ट है ( पर्ल्सब देखें )। PHP में, यदि कोई स्पष्ट रिटर्न नहीं है, तो रिटर्न वैल्यू NULL है
  • पर्ल चपटे सूची ( पर्ल्सब देखें ); गैर-चपटा डेटा संरचनाओं के लिए, संदर्भों का उपयोग करें।

    @foo = qw(bar baz);
    @qux = ('qux', @foo, 'quux'); # @qux is an array containing 4 strings
    @bam = ('bug-AWWK!', \@foo, 'fum'); # @bam contains 3 elements: two strings and a array ref

    PHP सरणियों को समतल नहीं करता है।

  • पर्ल है विशेष कोड ब्लॉक ( BEGIN, UNITCHECK, CHECK, INITऔर END) क्रियान्वित कर रहे हैं कि। विपरीत पीएचपी है auto_prepend_fileऔर auto_append_file, वहाँ कोड ब्लॉक के प्रत्येक प्रकार की संख्या की कोई सीमा नहीं है। इसके अलावा, कोड ब्लॉक स्क्रिप्ट के भीतर परिभाषित किए जाते हैं, जबकि PHP विकल्प सर्वर और प्रति-डायरेक्टरी कॉन्फिग फाइलों में सेट होते हैं।
  • पर्ल में, अर्धविराम बयानों को अलग करता है । PHP में, यह उन्हें समाप्त करता है, सिवाय इसके कि एक PHP करीब टैग ("?>") भी एक बयान को समाप्त कर सकता है।
  • पर्ल में अभिव्यक्तियों का मूल्य संदर्भ संवेदनशील है
  • पर्ल में नकारात्मक सदस्यता सरणी के अंत के सापेक्ष हैं। $bam[-1]सरणी का अंतिम तत्व है। PHP में नकारात्मक सब्सक्राइबर किसी भी अन्य की तरह सब्सक्राइबर हैं।
  • पर्ल 5 में, कक्षाएं संकुल पर आधारित होती हैं और PHP (या अधिकांश अन्य भाषाओं) में कक्षाओं की तरह कुछ भी नहीं देखती हैं। पर्ल 6 कक्षाएं PHP कक्षाओं के करीब हैं, लेकिन अभी भी काफी अलग हैं। (पर्ल 6 कई अन्य तरीकों से पर्ल 5 से अलग है, लेकिन यह विषय से हटकर है।) पर्ल 5 और PHP के बीच कई अंतर इस तथ्य से उत्पन्न होते हैं कि अधिकांश OO सुविधाएँ पर्ल में निर्मित नहीं हैं, बल्कि हैक पर आधारित हैं। उदाहरण के लिए, $obj->method(@args)जैसे किसी चीज़ का अनुवाद हो जाता है (ref $obj)::method($obj, @args)। गैर-विस्तृत सूची:
    • PHP स्वचालित रूप $thisसे विधियों में विशेष चर प्रदान करती है । पर्ल, विधियों के पहले तर्क के रूप में ऑब्जेक्ट का संदर्भ देता है।
    • पर्ल की आवश्यकता संदर्भ जा करने के लिए आशीर्वाद दिया एक वस्तु बनाने के लिए। किसी भी संदर्भ को दिए गए वर्ग के उदाहरण के रूप में आशीर्वाद दिया जा सकता है।
    • पर्ल में, आप पैकेज @ISAवेरिएबल के माध्यम से वंशानुक्रम को गतिशील रूप से बदल सकते हैं ।
  • पर्ल ऑपरेटर ओवरलोडिंग का समर्थन करता है ।
  • कड़ाई से बोलते हुए, पर्ल में बहुस्तरीय टिप्पणियां नहीं हैं, लेकिन POD प्रणाली का उपयोग उसी प्रभाव के लिए किया जा सकता है।
  • पर्ल में, //एक ऑपरेटर है। PHP में, यह एक-पंक्ति टिप्पणी की शुरुआत है।
  • PHP 5.3 तक, PHP के पास अनाम कार्यों ( create_functionफ़ंक्शन) के लिए भयानक समर्थन था और बंद करने के लिए कोई समर्थन नहीं था।
  • PHP के पास 5.3 के संस्करण तक पर्ल के पैकेज जैसा कुछ भी नहीं था, जिसने नामस्थान पेश किए ।
  • यकीनन, अपवादों के लिए निर्मित पर्ल का समर्थन अन्य भाषाओं में अपवादों की तरह लगभग कुछ भी नहीं दिखता है, इतना ही नहीं कि वे शायद ही अपवादों की तरह दिखते हैं। आप एक ब्लॉक का मूल्यांकन करें और के मान की जाँच $@( evalके बजाय try, dieके बजाय throw)। त्रुटि का प्रयास करें :: छोटे मॉड्यूल का समर्थन करता है अपवाद आप उन्हें अन्य भाषाओं में मिल के रूप में (और साथ ही में सूचीबद्ध कुछ अन्य मॉड्यूल त्रुटि देखते हैं इसके अलावा खंड)।

PHP पर्ल से प्रेरित थी उसी तरह फैंटम ऑफ़ द पैराडाइज़ , फैंटम ऑफ़ द ओपेरा से प्रेरित थी , या स्ट्रेंज ब्रे हैमलेट से प्रेरित थी । पर्ल सीखने के दौरान PHP के व्यवहार की बारीकियों को अपने दिमाग से बाहर रखना सबसे अच्छा है, अन्यथा आप फंस जाएंगे।

मेरा दिमाग अब दर्द करता है, इसलिए मैं रुकने वाला हूं।


21
यह एक शानदार जवाब है, और मैं इस पर इस तरह के एक छोटे nitpick बनाने बुरा लग रहा है, लेकिन आप केवल कर रहे हैं ज्यादातर सही पर्ल सरणियों के बारे में। जब आपके पास होता है @array = qw(a b c)और आप करते हैं $array[4] = 'e', तो सरणी की सामग्री बिल्कुल नहीं होती है ('a', 'b', 'c', undef, 'e'); वे ('a', 'b', 'c', अस्तित्वहीन , 'e')। यही है, [3]स्लॉट एक सूचक को स्केलर पर नहीं रखता है जो अपरिभाषित है; इसके पास कुछ भी नहीं है (और इसके लिए existsऑपरेटर परीक्षण)। एक छोटा सा अंतर, लेकिन एक अंतर। :)
हॉब

9
MAN, यह उन सर्वश्रेष्ठ उत्तरों में से एक है जो मैंने कभी देखे हैं। विशेष रूप से प्रेरणा के बारे में हिस्सा है। बस: शांत और सही। ;)
jm666

2
$fooअगर यह पहले से सेट नहीं है, तो एक मूल्य सेट करने का सबसे छोटा तरीका हैisset($foo) || $foo='default';
एलेक्सबसु

45

जब PHP दृश्य में आया, तो हर कोई पर्ल से मुख्य अंतर से प्रभावित था:

  1. वैश्विक दायरे में पहले से ही इनपुट चर, कोई उबाऊ पार्सिंग नहीं।
  2. HTML एम्बेडिंग। बस <?php ... ?>कहीं भी। कोई उबाऊ टेम्पलेट नहीं।
  3. ऑन-स्क्रीन त्रुटि संदेश। कोई उबाऊ त्रुटि लॉग peeks।
  4. सीखने में आसान। कोई बोरिंग किताब पढ़ना।

जैसे-जैसे समय बीतता गया, सभी को पता चला कि वे एक लाभ नहीं हैं, हे ...


21

मैंने देखा है कि अधिकांश PHP बनाम पर्ल पृष्ठों का लगता है

PHP पर्ल से बेहतर है क्योंकि <डालें lame reason> यहाँ

ilk, और शायद ही कभी उचित तुलना करें।

सिंटेक्स-वार, आप पाएंगे कि पर्ल अक्सर पर्ल की तुलना में समझना आसान होता है, खासकर जब आपको बहुत कम अनुभव होता है। उदाहरण के लिए, PHP में अग्रणी और अनुगामी व्हाट्सएप की एक स्ट्रिंग को ट्रिम करना बस है

$string = trim($string);

पर्ल में यह कुछ हद तक अधिक गूढ़ है

$string =~ s/^\s+//;
$string =~ s/\s+$//;

(मेरा मानना ​​है कि यह सिंगल लाइन कैप्चर और रिप्लेस की तुलना में थोड़ा अधिक कुशल है, और थोड़ा अधिक समझने योग्य भी है।) हालांकि, भले ही PHP अक्सर अधिक अंग्रेजी की तरह हो, यह कभी-कभी अपनी जड़ों को निम्न स्तर के सी के लिए एक आवरण के रूप में दिखाता है, उदाहरण के लिए, strpbrkऔर strspnशायद ही कभी उपयोग किया जाता है, क्योंकि अधिकांश PHP डब्बलर कुछ भी गूढ़ के लिए अपने स्वयं के समकक्ष कार्यों को लिखते हैं, बजाय मैनुअल की खोज के समय बिताने के बजाय। मुझे उन प्रोग्रामर्स के बारे में भी आश्चर्य है जिनके लिए अंग्रेजी एक दूसरी भाषा है, क्योंकि हर कोई पर्ल जैसी चीजों से बराबरी पर है, इसे खरोंच से सीखना होगा।

मैंने पहले ही मैनुअल का उल्लेख किया है। PHP में एक अच्छा ऑनलाइन मैनुअल है, और दुर्भाग्य से इसे इसकी आवश्यकता है। मैं अभी भी समय-समय पर उन चीजों के लिए संदर्भित करता हूं जो सरल होनी चाहिए, जैसे कि मापदंडों का क्रम या नामकरण सम्मेलन। पर्ल के साथ, आप शायद पाएंगे कि आप मैनुअल की बहुत चर्चा कर रहे हैं क्योंकि आप शुरू हो जाते हैं और फिर एक दिन आपके पास एक-हा पल होगा और फिर कभी इसकी आवश्यकता नहीं होगी। ठीक है, कम से कम तब तक जब तक आप अधिक उन्नत न हों और महसूस करें कि न केवल एक से अधिक तरीके हैं, शायद एक बेहतर तरीका है, किसी और ने शायद पहले से ही इसे बेहतर तरीके से किया है, और शायद आपको सिर्फ सीपीएएन पर जाना चाहिए।

पर्ल के पास चीजों को व्यक्त करने के लिए बहुत अधिक विकल्प और तरीके हैं। यह जरूरी नहीं कि अच्छी बात है, हालांकि यह कोड को अधिक पठनीय बनाने की अनुमति देता है यदि बुद्धिमानी से उपयोग किया जाता है और कम से कम एक तरीके से परिचित होने की संभावना है। कुछ निश्चित शैली और मुहावरे हैं जिन्हें आप अपने आप को गिरते हुए पाएंगे, और मैं दिल से पर्ल बेस्ट प्रैक्टिसेज (जल्दी बाद में) पढ़ने की सिफारिश कर सकता हूँ , साथ ही साथ पर्ल कुकबुक, दूसरा संस्करण आम समस्याओं को हल करने के लिए गति प्राप्त करने के लिए।

मेरा मानना ​​है कि साझा होस्टिंग परिवेशों में पर्ल का उपयोग अक्सर कम किया जाता है, ऐतिहासिक रूप से सीजीआई की कथित सुस्ती और सुरक्षा और कॉन्फ़िगरेशन मुद्दों के कारण mod_perl को स्थापित करने की मेजबानों की अनिच्छा ने PHP को अधिक आकर्षक विकल्प बना दिया है। तब यह सिलसिला जारी रहा, अधिक लोगों ने PHP का उपयोग करना सीखा क्योंकि अधिक होस्ट ने इसकी पेशकश की, और अधिक होस्ट ने इसकी पेशकश की क्योंकि यही लोग उपयोग करना चाहते थे। इन दिनों FastCGI द्वारा गति अंतर और सुरक्षा मुद्दों को म्यूट किया जाता है , और ज्यादातर मामलों में PHP को FastCGI से बाहर चलाने के बजाय वेब सर्वर के मूल में छोड़ दिया जाता है।

यह मामला है या नहीं या अन्य कारण हैं, PHP लोकप्रिय हो गया है और इसमें अनुप्रयोगों के असंख्य लिखे गए हैं। अधिकांश लोग जो केवल एक साधारण ब्लॉग या फोटो गैलरी के साथ एक एंट्री-लेवल वेबसाइट चाहते हैं, उनके लिए PHP की आवश्यकता होती है, ताकि मेजबानों को बढ़ावा मिले। यदि आप चाहते हैं तो आपको पर्ल (या आपके द्वारा चुने गए अन्य) का उपयोग करने से कुछ भी नहीं रोकना चाहिए।

एक उद्यम स्तर पर, मुझे संदेह है कि आपको उत्पादन में बहुत अधिक PHP मिलेगा (और कृपया, काउंटर-उदाहरण के रूप में फेसबुक पर कोई भी एक बिंदु नहीं है , मैंने उद्यम स्तर कहा है)।


2
खुशी से, FastCGI होस्टिंग के साथ होस्टिंग प्राप्त करना आसान हो रहा है जो mod_perl की जटिलताओं के बिना अच्छा प्रदर्शन देता है।
क्वेंटिन

@ डेविड डोरवर्ड: ठीक है। मैं एक ऐतिहासिक अर्थ में बोल रहा था, क्योंकि FastCGI भी mod_php से बेहतर प्रदर्शन / सुरक्षा देता है। मैं इसे संपादित करने की कोशिश करूँगा और इसे थोड़ा स्पष्ट करूँगा।
डंकन

3
आपके ट्रिम उदाहरण का कोई मतलब नहीं है। Whats बेहतर 4 संचालक या असंगत मापदंडों के सभी को याद कर रहे हैं और सभी PHP फ़ंक्शन जैसे ereg ereg_replace eregi eregi_replace mb_ereg mb_ereg_reg mb_eregi_regi preg_match preg_match preg_match preg_match preg_replace_greplace_greplace/gre/gre/gre/gre/gre/gre/gre/gp
gp_gre

3
आपका पर्ल ट्रिम उदाहरण बहुत सरल हो सकता है:$str =~ s/^\s+|\s+$//g;
फ्रांसिस्को ज़ाराबोज़ो

1
@Myforwik, मेरा ट्रिम उदाहरण यह प्रदर्शित करने के लिए था कि पर्ल में स्पष्ट कार्यों का अभाव है, जो एक शुरुआत के लिए भ्रमित हो सकता है। एक बार जब आप वाक्यविन्यास सीख लेते हैं, तो हाँ, यह सभी विसंगतियों से निपटने की तुलना में बहुत आसान है - मैंने उस बिंदु को लगातार मैनुअल की आवश्यकता के बारे में भी बनाया।
डंकन

9

पर्ल का उपयोग वेबसाइटों के लिए बहुत किया जाता है, उदाहरण के लिए पायथन और रूबी से कम नहीं। उस ने कहा, PHP का उपयोग उन लोगों की तुलना में अधिक बार किया जाता है। मुझे लगता है कि सबसे महत्वपूर्ण कारक PHP की तैनाती में आसानी और इसके साथ शुरू करने में आसानी है।

सिंटैक्स में अंतर यहाँ बहुत अधिक हैं, लेकिन आम तौर पर यह सच है कि यह अपने आप को व्यक्त करने के अधिक तरीके हैं (इसे TIMTWOTDI के रूप में जाना जाता है, इसमें एक से अधिक तरीके होते हैं)।


9

पर्ल के बारे में मेरी पसंदीदा बात यह है कि यह सरणियों / सूचियों को कैसे संभालता है। यहां एक उदाहरण दिया गया है कि आप पर्ल फ़ंक्शन (या "सबरूटीन") का उपयोग कैसे करेंगे और इसका उपयोग करेंगे, जो तर्क के लिए इसका उपयोग करता है:

sub multiply
{
    my ($arg1, $arg2) = @_; # @_ is the array of arguments
    return $arg1 * $arg2;
}

PHP में आप के साथ एक समान काम कर सकते हैं list(), लेकिन यह काफी समान नहीं है; पर्ल सूचियों और सरणियों में वास्तव में एक ही (आमतौर पर) व्यवहार किया जाता है। आप निम्न कार्य भी कर सकते हैं:

$week_day_name = ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")[$week_day_index];

और एक और अंतर जो आपको पता होना चाहिए, वह संख्यात्मक / स्ट्रिंग तुलना ऑपरेटर है। पर्ल में, यदि आप का उपयोग करें <, >, ==, !=, <=>, और इतने पर, पर्ल नंबरों के लिए दोनों ऑपरेंड बदल देता है। आप के बजाय तारों के रूप में परिवर्तित करना चाहते हैं, तो आप उपयोग करने के लिए है lt, gt, eq, ne, cmp(ऑपरेटरों के संबंधित समकक्ष पहले से सूचीबद्ध)। उदाहरण जहां यह वास्तव में आपको मिलेगा:

if ("a" == "b") { ... } # This is true.
if ("a" == 0) { ... } # This is also true, for the same reason.

एरे और सूचियों को आमतौर पर एक ही माना जाता है।
ब्रैड गिल्बर्ट

हाँ सच। मुझे लगता है कि मैं ऐसा कहने जा रहा था, लेकिन भूल गया। को प्रतिबिंबित करने के लिए संपादित।
crimson_penguin

4

मुझे आउटस के शानदार उत्तर के लिए कुछ भी जोड़ने की आवश्यकता नहीं है, मैं केवल आपके लिए प्रश्न का उत्तर दिखाना चाहता हूं:

Perl का उपयोग डायनामिक वेबसाइटों के लिए बहुत बार क्यों नहीं किया जाता है? क्या PHP से अधिक लोकप्रियता हासिल की?

कृपया पहले कुछ "जॉब ट्रेंड्स" साइटों की जाँच करें - और आप अकेले निर्णय ले सकते हैं।

जैसा कि आप देख सकते हैं, पर्ल अभी भी एक नेता है - लेकिन खिलौनों के लिए वास्तविक अनुप्रयोगों के लिए बेहतर नहीं है। :)


1
मुझे लगता है कि यह तुलना भी दिलचस्प है: www.simplyhired.com/a/jobtrends/trend/q-Perl,+Python,+PHP,+Ruby,+Java,+C%23,+C
सोरिन पोस्टेलनिकु

1
निश्चित टूटी हुई कड़ी, कृपया उपयोग करें: Simplyhired.com/…
r4

SH.com/a/jobtrends का अस्तित्व नहीं है। कृपया उपयोग करें: simplehired.com/search?q=Perl%2C%2BPython%2C%2BPHP%2C%2BRuby
r4।

@ r4.your लिंक मूल (अब टूटे हुए) लिंक के समान नहीं हैं। मूल एक ग्राफ दिखाता है (ऊपर की तरह), कुछ नौकरी-सूची नहीं। जॉब लिस्टिंग-लिंक दायरे से बाहर हैं।
jm666
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.