পার্ল এবং পিএইচপি মধ্যে পার্থক্য [বন্ধ]


101

আমি পার্ল 5 শিখার পরিকল্পনা করছি এবং যেহেতু আমি এখন পর্যন্ত কেবল পিএইচপি ব্যবহার করেছি, ভাষাগুলি একে অপরের থেকে কীভাবে আলাদা হয় সে সম্পর্কে আমি কিছুটা জানতে চেয়েছিলাম।

"পার্ল হ্যাকস" এর সেট হিসাবে পিএইচপি শুরু করার সাথে সাথে এটি পার্লসের কয়েকটি বৈশিষ্ট্য স্পষ্টভাবে ক্লোন করে ফেলেছে।

  • সিনট্যাক্সের মূল পার্থক্যগুলি কী কী? এটা কি সত্য যে পার্লের সাথে আপনার কাছে কিছু প্রকাশ করার জন্য আরও বিকল্প এবং উপায় রয়েছে?

  • পার্ল কেন খুব বেশি বার ডায়নামিক ওয়েবসাইটগুলির জন্য ব্যবহার হয় না? কি পিএইচপি আরও জনপ্রিয়তা লাভ করেছে?


2
কৌতূহলী হওয়ায়, আমাকে জিজ্ঞাসা করতে হবে: আপনি যদি পিএইচপি-র পরে আপনার দ্বিতীয় ভাষা অবাধে চয়ন করতে পারেন তবে আরও আধুনিক পাইথন বা রুবির পরিবর্তে পার্ল কেন?
ঝোলস্টার

37
পাইথন এবং রুবি আরও আধুনিক হওয়ার ভিত্তি কী?
জোশুয়া পার্টোগি

2
আমি মনে করি না যে লোকেরা ভাষার তুলনা করার চেষ্টা করা উচিত। এটি কেবল বিভ্রান্তির দিকে পরিচালিত করবে।
বেন শেলক

11
@ বেন: তুলনা সিনট্যাক্সের ব্যবহার সীমিত। বৈশিষ্ট্যগুলির তুলনা নতুন ভাষা শেখার ক্ষেত্রে সহায়তা করতে পারে।
outis

1
আমি বিশ্বাস করি যে ডিজাইনাররা এর জন্য কল্পনা করেছিলেন তার উপর ভিত্তি করে প্রতিটি ভাষারই এর শক্তি রয়েছে; বিশেষত ব্যবহারের কেসগুলির একটি সেটের উপর ভিত্তি করে। তাই ভাষার তুলনা করা প্রায়শই পক্ষপাত এবং বিভ্রান্তিকর
কোডএঞ্জেল

উত্তর:


284

পার্ল এবং পিএইচপি একের চেয়ে আলাদা। পার্ল 5 বিবেচনা করা যাক, যেহেতু পার্ল 6 এখনও বিকাশাধীন রয়েছে। কিছু পার্থক্য, মোটামুটি বিষয় অনুসারে গ্রুপ করা:

  • পারেলের স্থানীয় নিয়মিত অভিব্যক্তি সমর্থন রয়েছে, রেগএক্সপ্যাক্স লিটারাল সহ। পিএইচপি একটি এক্সটেনশন হিসাবে পার্লের রিজেক্সপ ফাংশন ব্যবহার করে।
  • পার্লের ম্যাচিং ( , ), কোট-লাইক ( , এবং সি।), এক্সপেনশনেশন ( ), স্ট্রিং পুনরাবৃত্তি ( ) এবং ব্যাপ্তি ( এবং ) সহ আরও কয়েকটি অপারেটর রয়েছে । পিএইচপি-র কয়েকটি অপারেটর পার্লের নেই, যেমন ত্রুটি দমন অপারেটর ( ), (যদিও পার্লের পদ্ধতি রয়েছে) এবং ।=~!~qwqx**x.....@instanceofUniversal::isaclone
  • পিএইচপি ইন, newএকটি অপারেটর হয়। পার্লে, এটি প্যাকেজগুলিতে সংজ্ঞায়িত কোনও অবজেক্ট ক্রিয়েশন সাব্রোটিনের প্রচলিত নাম, ভাষার বিষয়ে যতদূর বিশেষ বিশেষ কিছু নেই।
  • পার্ল লজিকাল অপারেটররা তাদের যুক্তি ফিরিয়ে দেয়, যখন তারা পিএইচপি-তে বুলিয়ান দেয় । চেষ্টা করুন:

    $foo = '' || 'bar';

    প্রতিটি ভাষায়। পার্লে, আপনি যদি এমন $foo ||= 'default'কোনও মান ইতিমধ্যে সেট না করে থাকে তবে কোনও মানে set foo সেট করতেও করতে পারেন । পিএইচপি-তে এটি করার সবচেয়ে সংক্ষিপ্ত উপায় হ'ল $foo = isset($foo) ? $foo : 'default';(আপডেট, পিএইচপি 7.0+ এ আপনি করতে পারেন $foo = $foo ?? 'default')

  • পার্ল ভেরিয়েবলের নামগুলি বিল্ট-ইন টাইপ নির্দেশ করে, যার মধ্যে পার্লের তিনটি থাকে এবং টাইপ স্পেসিফায়ার নামের একটি অংশ (" সিগিল " নামে পরিচিত ), তাই বা এর $fooচেয়ে পৃথক পরিবর্তনশীল ।@foo%foo
  • (পূর্ববর্তী পয়েন্ট সম্পর্কিত) পার্লের স্কেলার, অ্যারে, হ্যাশ, কোড, ফাইল / ডিরেক্টরি হ্যান্ডেল এবং ফর্ম্যাটগুলির জন্য পৃথক প্রতীক টেবিল এন্ট্রি রয়েছে। প্রত্যেকের নিজস্ব নামস্থান রয়েছে।
  • পার্ল প্রতীক টেবিলটিতে অ্যাক্সেস দেয় , যদিও এটি ম্যানিপুলেটিং হৃদয়ের হতাশার জন্য নয়। পিএইচপি-তে, প্রতীক টেবিলের হেরফেরগুলি রেফারেন্স এবং extractফাংশন তৈরির মধ্যে সীমাবদ্ধ ।
  • নোট করুন যে পিএইচপি এবং পার্লে "রেফারেন্স" এর আলাদা অর্থ রয়েছে। পিএইচপি-তে, রেফারেন্সগুলি হ'ল প্রতীক টেবিলের উপকরণ। পার্লে, উল্লেখগুলি হ'ল স্মার্ট পয়েন্টার।
  • পারেলের ইন্টিজার-ইনডেক্সড কালেকশন (অ্যারে) এবং স্ট্রিং ইনডেক্সড কালেকশন (হ্যাশ) এর জন্য বিভিন্ন ধরণের রয়েছে। পিএইচপি-তে, তারা একই ধরণের: একটি সহযোগী অ্যারে / অর্ডারযুক্ত মানচিত্র
  • পার্ল অ্যারেগুলি বিচ্ছিন্ন নয়: অ্যারের বর্তমান আকারের চেয়ে বড় সূচকের সাথে একটি উপাদান নির্ধারণ করা সমস্ত হস্তক্ষেপকারী উপাদানগুলিকে সেট করবে undefined( পারলডাটা দেখুন )। পিএইচপি অ্যারেগুলি বিরাট; একটি উপাদান সেট করা হস্তক্ষেপকারী উপাদানগুলি সেট করে না।
  • পার্ল হ্যাশ এবং অ্যারে স্লাইসগুলি দেশীয়ভাবে সমর্থন করে এবং স্লাইসগুলি নিয়োগযোগ্য, যার সমস্ত ধরণের ব্যবহার রয়েছে । পিএইচপি-তে, আপনি array_sliceএকটি স্লাইস উত্তোলন করতে এবং একটি স্লাইসে array_spliceবরাদ্দ করতে ব্যবহার করেন ।
  • আপনি কিছুটা যাদু করার জন্য পিএইচপি-তে সাবস্ক্রিপ্ট অপারেটরের পক্ষে যুক্তিটি ছেড়ে দিতে পারেন । পার্লে, আপনি সাবস্ক্রিপ্টটি ছেড়ে দিতে পারবেন না।
  • পার্ল হ্যাশগুলি আনঅর্ডারড
  • পার্লের প্রচুর সংখ্যক পূর্বনির্ধারিত এবং যাদু ভেরিয়েবল রয়েছে । পিএইচপি এর পূর্বনির্ধারিত ভেরিয়েবলগুলির বেশ আলাদা উদ্দেশ্য রয়েছে।
  • পার্লের স্টেটমেন্ট মোডিফায়ার রয়েছে : কিছু স্টেটমেন্টের স্টেটমেন্ট একটি স্টেটমেন্টের শেষে রাখা যায়।
  • পার্ল কীওয়ার্ডের মাধ্যমে ডায়নামিক স্কোপিং সমর্থন করে local
  • এছাড়াও, পার্লের বৈশ্বিক, লেক্সিকাল (ব্লক) এবং প্যাকেজের সুযোগ রয়েছে । পিএইচপি এর গ্লোবাল, ফাংশন, অবজেক্ট, ক্লাস এবং নেমস্পেসের সুযোগ রয়েছে
  • পার্লে, ভেরিয়েবলগুলি ডিফল্টরূপে গ্লোবাল। পিএইচপি-তে, ফাংশনগুলিতে ভেরিয়েবলগুলি ডিফল্টরূপে স্থানীয় হয়।
  • পার্ল ফাংশনের মাধ্যমে সুস্পষ্ট লেজ কলকে সমর্থন gotoকরে।
  • পার্লের প্রোটোটাইপগুলি পিএইচপি-র টাইপ ইঙ্গিতের চেয়ে ফাংশন আর্গুমেন্টের জন্য আরও সীমিত প্রকারের চেকিং সরবরাহ করে । ফলস্বরূপ, প্রোটোটাইপগুলি টাইপ হিন্টিংয়ের চেয়ে বেশি সীমাবদ্ধ ইউটিলিটি।
  • পার্লে, সর্বশেষ মূল্যায়িত বিবৃতিটি সাব্রোটিনের মান হিসাবে ফিরিয়ে দেওয়া হয় যদি বিবৃতিটি একটি অভিব্যক্তি (যেমন এর একটি মান থাকে), এমনকি যদি কোনও বিবরণী বিবৃতি ব্যবহৃত না হয়। যদি শেষ বিবৃতিটি কোনও লুপের মতো কোনও অভিব্যক্তির (অর্থাত্ কোনও মান থাকে না) হয়, তবে ফেরতের মানটি নির্ধারিত হয় ( পার্লসব দেখুন ) see পিএইচপি-তে, সুস্পষ্ট রিটার্ন না থাকলে, ফেরতের মান 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

    পিএইচপি আরে চ্যাপ্টা করে না।

  • পার্ল হয়েছে বিশেষ কোড ব্লক ( BEGIN, UNITCHECK, CHECK, INITএবং END) মৃত্যুদন্ড কার্যকর করা হয় যে। পিএইচপি auto_prepend_fileএবং এর বিপরীতে auto_append_file, প্রতিটি ধরণের কোড ব্লকের সংখ্যার সীমা নেই। এছাড়াও, কোড ব্লকগুলি স্ক্রিপ্টগুলির মধ্যে সংজ্ঞায়িত করা হয়, যেখানে পিএইচপি বিকল্পগুলি সার্ভারে এবং প্রতি ডিরেক্টরি কনফিগারেশন ফাইলগুলিতে সেট করা থাকে।
  • পার্লে, সেমিকোলন বিবৃতি পৃথক করে । পিএইচপি, এটা বন্ধ তাদের ব্যতীত যে একটি পিএইচপি ঘনিষ্ঠ ট্যাগ ( "?>") একটি বিবৃতি বন্ধ করতে পারেন।
  • পার্লের এক্সপ্রেশনগুলির মান প্রসঙ্গ সংবেদনশীল
  • পারেলের নেতিবাচক সাবস্ক্রিপ্টগুলি অ্যারের শেষের সাথে তুলনামূলক। $bam[-1]অ্যারের চূড়ান্ত উপাদান। পিএইচপি-তে নেতিবাচক সাবস্ক্রিপ্টগুলি অন্যগুলির মতো সাবস্ক্রিপ্ট।
  • পার্ল 5-এ ক্লাসগুলি প্যাকেজগুলির উপর ভিত্তি করে তৈরি হয় এবং পিএইচপি (বা বেশিরভাগ অন্যান্য ভাষা) এর ক্লাসগুলির মতো কিছুই দেখায় না। পার্ল 6 ক্লাস পিএইচপি ক্লাসের কাছাকাছি, তবে এখনও বেশ আলাদা। (পার্ল 6 অন্যান্য অনেক উপায়ে পার্ল 5 এর থেকে পৃথক , তবে এটি বন্ধ বিষয়)) পার্ল 5 এবং পিএইচপি-র মধ্যে অনেক পার্থক্য এই সত্য থেকেই উদ্ভূত হয় যে বেশিরভাগ ওও বৈশিষ্ট্য পার্লের অন্তর্নির্মিত নয় তবে হ্যাকের উপর ভিত্তি করে। উদাহরণস্বরূপ, $obj->method(@args)এরকম কিছুতে অনুবাদ হয় (ref $obj)::method($obj, @args)। অ-নিষ্ক্রিয় তালিকা:
    • পিএইচপি স্বয়ংক্রিয়ভাবে $thisপদ্ধতিগুলিতে বিশেষ পরিবর্তনশীল সরবরাহ করে। পার্ল পদ্ধতিতে প্রথম আর্গুমেন্ট হিসাবে বস্তুর একটি রেফারেন্স পাস করে।
    • পার্লের জন্য একটি অবজেক্ট তৈরি করার জন্য আশীর্বাদ পাওয়ার জন্য রেফারেন্স প্রয়োজন । কোনও রেফারেন্স প্রদত্ত শ্রেণীর উদাহরণ হিসাবে আশীর্বাদ পেতে পারে।
    • পার্লে, আপনি প্যাকেজগুলির মাধ্যমে ডায়াগোনালি উত্তরাধিকার পরিবর্তন করতে পারেন @ISA ভেরিয়েবলের ।
  • পার্ল সমর্থন করে অপারেটর ওভারলোডিং
  • কড়া কথায় বলতে গেলে পার্লের একাধিক মন্তব্য নেই, তবে একই প্রভাবের জন্য পিওডি সিস্টেম ব্যবহার করা যেতে পারে।
  • পার্লে, // একজন অপারেটর। পিএইচপি-তে, এটি একটি লাইন মন্তব্যের শুরু।
  • পিএইচপি 5.3 অবধি, পিএইচপি বেনামে ফাংশনগুলির জন্য ভয়ানক সমর্থন পেয়েছিল (the create_function ফাংশন) এর এবং বন্ধ হওয়ার জন্য কোনও সমর্থন ছিল না।
  • পিএইচপি এর 5.3 সংস্করণ না হওয়া পর্যন্ত পারেলের প্যাকেজগুলির মতো কিছুই ছিল না which নাম স্থানগুলি
  • তর্কসাপেক্ষভাবে, ব্যতিক্রমগুলির জন্য পার্লের অন্তর্নির্মিত সমর্থনটি অন্যান্য ভাষার ব্যতিক্রমগুলির মতো প্রায় কিছুই দেখায় না, তাই এগুলি খুব কমই ব্যতিক্রম বলে মনে হয়। আপনি একটি ব্লক মূল্যায়ন এবং এর মান পরীক্ষা $@( evalপরিবর্তে try, dieপরিবর্তে throw)। ত্রুটি চেষ্টা :: ক্ষুদ্র মডিউল সমর্থন ব্যতিক্রম হিসাবে আপনি তাদের অন্যান্য ভাষায় এটি (সেইসাথে অন্য কিছু মডিউল তালিকাভুক্ত এছাড়াও ত্রুটি হয়েছে তা দেখতে অধ্যায়)।

পিএইচপি পার্ল দ্বারা অনুপ্রাণিত হয়েছিল ঠিক তেমনই প্যারাডাইজের ফ্যান্টম অপেরার ফ্যান্টম দ্বারা অনুপ্রাণিত হয়েছিল , বা স্ট্রেঞ্জ ব্রিউ হ্যামলেট দ্বারা অনুপ্রাণিত হয়েছিল । পার্ল শেখার সময় পিএইচপি-র আচরণের বৈশিষ্ট্যগুলি আপনার মনের বাইরে রাখাই ভাল, অন্যথায় আপনি বিভ্রান্ত হয়ে যাবেন।

আমার মস্তিষ্ক এখন ব্যথা, তাই আমি থামতে যাচ্ছি।


21
এটি একটি চমত্কার উত্তর, এবং আমি এটা উপর যেমন একটি ক্ষুদ্র nitpick উপার্জন খারাপ মনে করেন, কিন্তু আপনি শুধুমাত্র করছি বেশিরভাগই অধিকার পার্ল অ্যারে সম্পর্কে। যখন আপনার আছে @array = qw(a b c)এবং আপনি করেন $array[4] = 'e', অ্যারের সামগ্রীগুলি হুবহু নয় ('a', 'b', 'c', undef, 'e'); তারা ('a', 'b', 'c', অবাস্তব , 'e')। এটি হল, [3]স্লট কোনও স্কেলারের কাছে কোনও পয়েন্টার ধরে না যা অপরিবর্তিত; এটি মোটেও কিছু রাখে না (এবং existsঅপারেটর এটির জন্য পরীক্ষা করে)। একটি ছোট পার্থক্য, কিন্তু একটি পার্থক্য। :)
হবিস

9
মানুষ, আমি যা দেখেছি এটি সেরা উত্তরগুলির মধ্যে একটি। বিশেষত অনুপ্রেরণা সম্পর্কে অংশ। সহজ: শীতল এবং সত্য। ;)
jm666

2
$fooইতিমধ্যে সেট না থাকলে মান নির্ধারণের সবচেয়ে সংক্ষিপ্ততম isset($foo) || $foo='default';
উপায়টি

45

পিএইচপি যখন দৃশ্যে এসেছিল, তখন পার্লের থেকে প্রধান পার্থক্য দেখে সবাই মুগ্ধ হয়েছিল:

  1. বৈশ্বিক স্কোপটিতে ইতিমধ্যে ইনপুট ভেরিয়েবলগুলি, বিরক্তিকর কোনও পার্সিং নেই।
  2. এইচটিএমএল এম্বেডিং। মাত্র<?php ... ?> কোথাও। বিরক্তিকর কোনও টেম্পলেট নেই।
  3. অন ​​স্ক্রিন ত্রুটি বার্তা। কোনও বিরক্তিকর ত্রুটি লগ পিকস নেই।
  4. শেখা সহজ. কোনও বিরক্তিকর বই পড়া নেই।

সময় যতই কেটে গেল, সকলেই শিখেছিল যে সেগুলি কোনও লাভ নয়, সে ...


21

আমি লক্ষ্য করেছি যে বেশিরভাগ পিএইচপি বনাম পার্ল পৃষ্ঠাগুলি মনে হয়

পিএইচপি পার্লের চেয়ে ভাল কারণ <লম্বা কারণ এখানে >োকান>

ইল্ক, এবং খুব কমই যুক্তিসঙ্গত তুলনা করা।

সিনট্যাক্স-ভিত্তিতে, আপনি পিএইচপি খুব সহজেই পার্লের থেকে বোঝা সহজ পাবেন, বিশেষত যখন আপনার সামান্য অভিজ্ঞতা থাকে। উদাহরণস্বরূপ, পিএইচপি-তে নেতৃস্থানীয় এবং অনুসরণকারী শ্বেতস্পেসের একটি স্ট্রিং ছাঁটাই করা সহজ

$string = trim($string);

পার্ল এটি কিছুটা রহস্যজনক

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

(আমি বিশ্বাস করি এটি একটি একক লাইন ক্যাপচার এবং প্রতিস্থাপনের তুলনায় কিছুটা দক্ষ এবং আরও কিছুটা বোধগম্য)) তবে, পিএইচপি প্রায়শই বেশি ইংরাজির মতো হলেও এটি কখনও কখনও নিম্ন স্তরের সিটির জন্য একটি মোড়ক হিসাবে তার শিকড় দেখায়, উদাহরণস্বরূপ, strpbrkএবংstrspn সম্ভবত খুব কমই ব্যবহৃত হয়, কারণ বেশিরভাগ পিএইচপি ড্যাবলাররা ম্যানুয়াল অন্বেষণে সময় ব্যয় করার চেয়ে খুব বেশি কিছু রহস্যজনক কোনও কিছুর জন্য তাদের নিজস্ব সমতুল্য ফাংশন লিখেন। আমি প্রোগ্রামারদের সম্পর্কেও আশ্চর্য হই যে যাদের জন্য ইংরেজী দ্বিতীয় ভাষা, কারণ প্রত্যেকে পার্লের মতো বিষয়গুলির সমান পদক্ষেপ নিয়েছে, এটি স্ক্র্যাচ থেকে শিখতে হবে।

আমি ইতোমধ্যে ম্যানুয়ালটি উল্লেখ করেছি। পিএইচপি-র একটি দুর্দান্ত অনলাইন ম্যানুয়াল রয়েছে, এবং দুর্ভাগ্যক্রমে এটির এটির প্রয়োজন। প্যারামিটারের ক্রম বা ফাংশন নামকরণ কনভেনশন যেমন সহজ হওয়া উচিত এমন জিনিসগুলির জন্য আমি এখনও সময়ে সময়ে এটি উল্লেখ করি। পার্লের সাহায্যে আপনি সম্ভবত খুঁজে পাবেন যে আপনি ম্যানুয়ালটিকে অনেকটা উল্লেখ করছেন আপনি শুরু করার সাথে সাথে এবং তারপরে একদিন আপনার এক -হ- মুহুর্ত হবে এবং আবার কখনও প্রয়োজন হবে না। ভাল, কমপক্ষে আপনি যতক্ষণ না আপনি আরও উন্নত হন এবং উপলব্ধি না করে থাকেন যে কেবল একাধিক উপায় নয়, সম্ভবত আরও ভাল উপায় আছে, অন্য কেউ সম্ভবত ইতিমধ্যে এটি আরও ভালভাবে করেছেন, এবং সম্ভবত আপনার কেবল সিপিএএন পরিদর্শন করা উচিত।

পার্লের কাছে অনেকগুলি বিকল্প এবং জিনিস প্রকাশ করার উপায় রয়েছে। এটি অগত্যা কোনও ভাল জিনিস নয়, যদিও এটি যদি বিজ্ঞতার সাথে ব্যবহার করা হয় এবং আপনার পরিচিত হওয়ার সম্ভাব্য উপায়গুলির একটির অন্ততপক্ষে কোডটি আরও পঠনযোগ্য হতে দেয়। কিছু স্টাইল এবং প্রতিমা রয়েছে যা আপনি নিজের মধ্যে পড়ে যাবেন এবং সাধারণ সমস্যাগুলি সমাধানের গতি অর্জনের জন্য পার্ল কুকবুক, দ্বিতীয় সংস্করণ সহ আমি পারল সেরা অভ্যাসগুলি (শীঘ্রের চেয়ে শীঘ্রই) পড়ার আন্তরিকভাবে সুপারিশ করতে পারি ।

আমি বিশ্বাস করি যে ভাগ করে নেওয়া হোস্টিং পরিবেশে পার্ল কম ব্যবহার করা হয় তা হ'ল historতিহাসিকভাবে সিজিআই এবং হোস্টের সুরক্ষা এবং কনফিগারেশন সমস্যার কারণে মোড_প্যারেল ইনস্টল করতে অনীহা অনুভূত PH তিহাসিকভাবে পিএইচপি আরও আকর্ষণীয় বিকল্প করে তুলেছে। চক্রটি তখন অব্যাহত থাকে, আরও লোকেরা পিএইচপি ব্যবহার করতে শিখেছিল কারণ আরও হোস্টরা এটি সরবরাহ করে এবং আরও হোস্টরা এটি অফার করে কারণ এটিই লোকেরা ব্যবহার করতে চায়। গতিগত পার্থক্য এবং সুরক্ষা সংক্রান্ত সমস্যাগুলি আজকাল ফাস্টসিজিআই দ্বারা বিস্মৃত হয় এবং বেশিরভাগ ক্ষেত্রে পিএইচপি ওয়েব সার্ভারের মূল অংশে না রেখে ফাস্টপিজিআই থেকেও চালিত হয়।

এই ঘটনাটি থাকুক বা না থাকুক বা অন্য কারণগুলি থাকুক না কেন, পিএইচপি জনপ্রিয় হয়ে উঠেছে এবং এতে একটি অগণিত অ্যাপ্লিকেশন লেখা হয়েছে। বেশিরভাগ লোকের জন্য যারা কেবল একটি সাধারণ ব্লগ বা ফটো গ্যালারী সহ একটি এন্ট্রি-স্তরের ওয়েবসাইট চান, পিএইচপি তাদের কেবলমাত্র তাই প্রয়োজন যা হোস্টরা প্রচার করে। আপনি চাইলে পার্ল (বা আপনি যে কোনও কিছু চয়ন করুন) ব্যবহার করা থেকে বিরত থাকার কিছু নেই।

একটি এন্টারপ্রাইজ স্তরে, আমি সন্দেহ করি যে আপনি উত্পাদন করতে খুব বেশি পিএইচপি পাবেন (এবং দয়া করে, কাউন্টার-উদাহরণ হিসাবে ফেসবুকে কোনও বিন্দু নয় , আমি বলেছিলাম এন্টারপ্রাইজ স্তর)।


2
সুখের বিষয়, ফাস্টসিজিআই হোস্টিংয়ের সাথে হোস্টিং করা সহজ হয়ে উঠছে যা মোড_পেরেলের জটিলতা ছাড়াই শালীন কার্য সম্পাদন করে।
কোয়ান্টিন

@ ডেভিড ডারওয়ার্ড: ঠিক আছে। আমি historicalতিহাসিক অর্থে কথা বলছিলাম, যেহেতু ফাস্টসিজিআই মোড_এফপি এর চেয়ে আরও ভাল পারফরম্যান্স / সুরক্ষা দেয়। আমি এটি সম্পাদনা করব এবং চেষ্টা করুন এবং এটি আরও পরিষ্কার করুন।
ডানকান

3
আপনার ছাঁটাই উদাহরণটি বোঝায় না। কী 4 অপারেটার ভালো বা অসঙ্গত পরামিতি এবং এই ধরনের ereg ereg_replace eregi eregi_replace mb_ereg mb_ereg_replace mb_eregi mb_eregi_replace preg_match preg_match_all preg_replace str_replace str_ireplace strstr stristr strrchr strpos stripos strrpos strripos mb_strpos mb_strrpos হিসাবে সব পিএইচপি ফাংশন ফেরত মূল্যবোধের সব স্মরণ
Myforwik

3
আপনার পার্ল ট্রিম উদাহরণটি আরও সহজ হতে পারে:$str =~ s/^\s+|\s+$//g;
ফ্রান্সিসকো জারাবোজো

1
@ মাইফরভিক, আমার ছাঁটাই উদাহরণটি দেখানো হয়েছিল যে পার্লের সুস্পষ্ট ফাংশনগুলির অভাব রয়েছে, যা কোনও নবজাতকের জন্য বিভ্রান্তিকর হতে পারে। একবার আপনি সিনট্যাক্সটি শিখলে, হ্যাঁ, সমস্ত অসঙ্গতিগুলির সাথে মোকাবিলা করার চেয়ে অনেক সহজ - আমি নিয়মিতভাবে ম্যানুয়ালটির প্রয়োজনের বিষয়েও এই বিষয়টি তৈরি করেছি।
ডানকান

9

পার্ল ওয়েবসাইটগুলির জন্য প্রচুর পরিমাণে ব্যবহৃত হয়, উদাহরণস্বরূপ পাইথন এবং রুবির চেয়ে কম নয়। এটি বলেছিল যে পিএইচপি ব্যবহারকারীর চেয়ে অনেক বেশি ব্যবহৃত হয়। আমি মনে করি যেগুলির মধ্যে সবচেয়ে গুরুত্বপূর্ণ কারণগুলি হ'ল পিএইচপি'র মোতায়েনের সহজতা এবং এর সাথে শুরু করার সহজতা।

সিনট্যাক্সের পার্থক্যগুলি এখানে সংক্ষিপ্ত পরিমাণে অনেক বেশি, তবে সাধারণত এটি সত্য যে এটি নিজেকে প্রকাশ করার আরও বেশি উপায় রয়েছে (এটি টিমটবটিডিআই হিসাবে পরিচিত, এটি করার এক উপায় ছাড়াও রয়েছে)।


9

পার্ল সম্পর্কে আমার প্রিয় জিনিসটি অ্যারে / তালিকাগুলি যেভাবে পরিচালনা করে। আপনি পার্ল ফাংশন (বা "সাব্রোটিন") কীভাবে তৈরি এবং ব্যবহার করবেন তার একটি উদাহরণ এখানে দেওয়া হয়েছে, যা এটি আর্গুমেন্টগুলির জন্য ব্যবহার করে:

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

পিএইচপি-তে আপনি একই ধরণের কাজ করতে পারতেন list(), তবে এটি একেবারে একই নয়; পার্ল তালিকায় এবং অ্যারেগুলিতে আসলে একইরকম হয় (সাধারণত)। আপনি এই জাতীয় জিনিসগুলিও করতে পারেন:

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

এবং অন্য একটি পার্থক্য যা আপনার জানা উচিত, তা হল সংখ্যার / স্ট্রিং তুলনা অপারেটর। পার্ল, যদি আপনি ব্যবহার <, >, ==, !=, <=>, ইত্যাদি, পার্ল নম্বরে উভয় operands পরিবর্তন করে। আপনি যদি এর পরিবর্তে স্ট্রিং হিসাবে রূপান্তর করতে চান, আপনি ব্যবহার করতে হবে lt, gt, eq, ne, cmp(অপারেটরদের নিজ নিজ সমতুল পূর্বে উল্লিখিত)। উদাহরণস্বরূপ যেখানে এটি আপনাকে পাবেন:

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

অ্যারে এবং তালিকাগুলি সাধারণত একইরকম আচরণ করা হয়।
ব্র্যাড গিলবার্ট

হ্যা, সত্য. আমি মনে করি আমি এটি বলতে যাচ্ছিলাম, তবে ভুলে গিয়েছিলাম। যে প্রতিফলিত সম্পাদিত।
ক্রিমসন_পেনগুইন

4

আউটিসের চমত্কার উত্তরে আমার কোনও যোগ করার দরকার নেই, আমি কেবল আপনার প্রশ্নের উত্তরই দেখাতে চাই:

পার্ল কেন খুব বেশি বার ডায়নামিক ওয়েবসাইটগুলির জন্য ব্যবহার হয় না? পিএইচপি এর চেয়ে বেশি জনপ্রিয়তা অর্জন করে?

দয়া করে প্রথমে কয়েকটি "জব ট্রেন্ডস" সাইটগুলি দেখুন - এবং আপনি রায়টি একা করতে পারেন।

যেমন আপনি দেখতে পাচ্ছেন, পার্ল এখনও একটি নেতা but তবে খেলনাগুলির জন্য নয় আসল অ্যাপ্লিকেশনগুলির পক্ষে। :)



1
স্থির ভাঙা লিঙ্ক, দয়া করে ব্যবহার করুন: কেবলিহায়ারড @…
4।

SH.com/a/jobtrends উপস্থিত নেই বলে মনে হচ্ছে। দয়া করে ব্যবহার করুন: কেবলিহিল্ড
সন্ধান?q=

@ r4. আপনার লিঙ্কগুলি মূল (এখন ভাঙা) লিঙ্কটির মতো নয়। মূল কোনও গ্রাফ দেখায় (উপরের মতো), কিছু কাজের তালিকা নয়। কাজের তালিকা-লিঙ্কগুলি সুযোগের বাইরে।
jm666
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.