পার্ল (প্রোগ্রামিং ভাষা)

পার্ল () দুইটি উচ্চ স্তরের, জেনারেল পারপাস, ইন্টারপ্রিটেড, ডাইনামিক প্রোগ্রামিং ভাষার একটি পরিবার। পার্ল বলতে পার্ল ভাষার পঞ্চম সংস্করণ পার্ল-৫'কে বুঝানো হত। কিন্তু ২০০০ থেকে ২০১৯ সাল পর্যন্ত পার্ল বলতে পার্লের উন্নত ও পুনঃ নকশাকৃত সংস্করণ, পার্ল-৬'কেও বুঝানো হত। ২০১৯ সালের অক্টোবর মাসে পার্ল ৬ এর নাম পরিবর্তন করে রাকু রাখা হয়। 

পার্ল কোনো নামের সংক্ষিপ্ত রূপ নয় , কিন্তু এর ইংরেজি বানানের অক্ষরগুলো নিয়ে কিছু পরিবর্ধিত রূপ প্রচলিত আছে। যেমন, প্র্যাকটিকাল এক্সট্রাকশন এন্ড রিপোর্টিং লাঙ্গুয়েজ।  ১৯৮৭ সালে ল্যারি ওয়াল প্রতিবেদন প্রক্রিয়াকরণের কাজ সহজ করার উদ্দেশ্যে জেনারেল পারপাস ইউনিক্স স্ক্রিপ্টিং ভাষা হিসেবে পার্ল উদ্ভাবন করেন।  পরবর্তী সময়গুলোতে এই ভাষাটি বহুবিধ উন্নয়ন ও সংশোধনের মধ্য দিয়ে গেছে। পার্লের পঞ্চম সংস্করণের একটি পুনঃ নকশাকৃত সংস্করণ হিসেবে তৈরি করা 'রাকু', বর্তমানে একটি স্বতন্ত্র ভাষায় পরিনত হয়েছে। বর্তমানে ভাষা দুটো আলাদা প্রকৌশল দল দ্বারা পরিচালিত হচ্ছে। দল দুটো নির্দ্বিধায় একে অন্যের আইডিয়া বিনিময় করে থাকে।

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

সিজিআইয়ের পাশাপাশি পার্ল-৫ সিস্টেম এডমিনিস্ট্রেশন, নেটওয়ার্ক প্রোগ্রামিং, অর্থসংস্থান, জৈব তথ্যবিজ্ঞানসহ আরও অন্যান্য ক্ষেত্র এমনকি গ্রাফিকাল ইউজার ইন্টারফেস বানাতেও ব্যবহৃত হয়। নানা ক্ষেত্রে ব্যবহারযোগ্যতা ও সক্ষমতার কারণে এবং অন্যান্য ভাষার চেয়ে অধিক সংখ্যক বিশেষ ক্যারেকটার ব্যবহারের কারণে বিশ্রী বোঝাতে একে 'সুইস আর্মি চেইন'স অব স্ক্রিপ্টিং ল্যাঙ্গুয়েজেস' বলে অভিহিত করা হয়।  ১৯৯৮ সালে সারা পৃথিবীতে গ্লু ল্যাঙ্গুয়েজ হিসেবে পার্লের সর্বত্র ব্যবহার ও অনমনীয় বৈশিষ্ট্যের জন্য একে "ইন্টারনেটকে ধরে রাখা ডাক্ট টেপ" বলেও অভিহিত করা হয়েছিল। 

পার্ল বেশ এক্সপ্রেসিভ প্রোগ্রামিং ভাষা। অল্প সোর্স কোড দিয়েই এতে এলগরিদম লিখে ফেলা যায়।

নামকরণ 
পার্লের ইংরেজি বানান শুরুতে "Pearl" ছিল। কিন্তু উদ্ভাবক ল্যারি ওয়াল ভাষাটিকে একটি ইতিবাচক ও ছোট নাম দিতে চেয়েছিলেন। পাশাপাশি পার্ল প্রকাশের আগে একই নামে আরেকটি ভাষার অস্তিত্ব আবিষ্কার করেন এবং ইংরেজি নামের বানান হতে "a" অপসারণ করেন। 

এই ভাষাটির নাম বুঝানোর ক্ষেত্রে ইংরেজি পার্ল শব্দের প্রথম অক্ষর বড় হাতে লেখা হয়, যেমন, Perl। আর যখন এই ভাষাটিতে লেখা কোনো প্রোগ্রামকে বুঝানো হয় তখন একই নামটির ইংরেজি বানানের প্রথম অক্ষর ছোট হাতে লেখা হয়, যেমন, perl। এর কারন হল পার্ল ভাষাটিকে ইউনিক্স ধরনের অপারেটিং সিস্টেমে বানানো হয়েছিলো এবং এই অপারেটিং সিস্টেমের ফাইল সিস্টেম কেস-সেনসিটিভ ছিল। "প্রোগ্রামিং পার্ল" নামক বইটি প্রথম প্রকাশের পূর্বে পার্ল ভাষাটির ইংরেজি বানান সর্বদা perl হিসেবেই লেখা হত। র‍্যান্ডাল এল. শোয়ার্টজ এর ইংরেজি বানানটির অক্ষরবিন্যাস সুন্দর করার উদ্দেশ্যে পার্ল শব্দের প্রথম অক্ষর বড় হাতের করে দেন। পরবর্তিতে এই পরিবর্তনটি পার্লের জন্য বিধিসম্মত হিসেবে নথিভুক্ত হতে থাকে। 

নামটির কোনো পূর্ণরূপ না থাকলেও, এর বানানের অক্ষরগুলো নিয়ে একে প্রায়শই "প্র্যাকটিকাল এক্সট্র্যাকশন এন্ড রিপোর্টিং ল্যাঙ্গুয়েজ" ও ল্যারি ওয়ালের মতে "প্যাথলজিকালি একলেকটিক রাবিশ লিস্টার" নামে পরিবর্ধিত করা হয়।

ইতিহাস

প্রারম্ভিক সংস্করণ 
ল্যারি ওয়াল ১৯৮৭ সালে ইউনিসিসে কর্মরত অবস্থায় পার্ল নিয়ে কাজ শুরু করেন।  তিনি ১৮ ডিসেম্বর ১৯৮৭ সালে এর ১.০ সংস্করণ প্রকাশ করেন।  পরবর্তী বছরগুলোতে ভাষাটি খুব দ্রুত বিস্তৃতি পেতে থাকে।

১৯৮৮ সালে পার্ল-২ প্রকাশিত হয়। এই সংস্করণে একটি শক্তিশালী রেগুলার এক্সপ্রেশন ইঞ্জিন ছিল। ১৯৮৯ সালে পার্ল-৩ প্রকাশিত হয় এবং এই সংস্করণে বাইনারি ডাটা স্ট্রিমের সুবিধা যোগ হয়।

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

তথ্যসূত্র

বহিঃসংযোগ 

  Perl.org
 Comprehensive Perl Archive Network The canonical location for Perl code and modules
 The Perl Foundation
 PerlMonks A community committed to sharing Perl knowledge and coding tips

প্রোগ্রামিং ভাষা
মার্কিন উদ্ভাবন
ক্রস-প্ল্যাটফর্ম সফটওয়্যার
চলমান-টাইপকৃত প্রোগ্রামিং ভাষা
উচ্চস্তরের প্রোগ্রামিং ভাষা
বস্তু-সংশ্লিষ্ট প্রোগ্রামিং ভাষা
পদ্ধতিমূলক প্রোগ্রামিং ভাষা
স্ক্রিপ্টিং ভাষা

ml:പേള്‍