এটি হল perl5005delta কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
perl5005delta - perl5.005 এর জন্য নতুন কি
বর্ণনাঃ
এই নথিটি 5.004 রিলিজ এবং এটির মধ্যে পার্থক্য বর্ণনা করে।
সম্পর্কে দ্য নতুন সংস্করণ পদ্ধতি
পার্ল এখন দুটি ট্র্যাকে তৈরি করা হয়েছে: একটি রক্ষণাবেক্ষণ ট্র্যাক যা ছোট, নিরাপদ আপডেট করে
সামঞ্জস্যের উপর জোর দিয়ে উৎপাদন সংস্করণ প্রকাশ করা হয়েছে; এবং একটি উন্নয়ন ট্র্যাক যে
আরো আক্রমনাত্মক বিবর্তন অনুসরণ করে। রক্ষণাবেক্ষণ রিলিজ (যা বিবেচনা করা উচিত
উত্পাদনের গুণমান) 1 থেকে 49 পর্যন্ত সঞ্চালিত বিপর্যয় সংখ্যা এবং বিকাশ
রিলিজগুলি (যাকে "আলফা" গুণমান হিসাবে বিবেচনা করা উচিত) 50 থেকে 99 পর্যন্ত চলে।
পার্ল 5.005 হল নতুন ডুয়াল-ট্র্যাক ডেভেলপমেন্ট স্কিমের সম্মিলিত পণ্য।
বেমানান পরিবর্তন
সতর্কতা: এই সংস্করণ is না বাইনারি উপযুক্ত সঙ্গে পার্ল 5.004.
পার্ল 5.004_50 দিয়ে শুরু করে ভাষার অনেক গভীর এবং সুদূরপ্রসারী পরিবর্তন ছিল
অভ্যন্তরীণ আপনার যদি গতিশীলভাবে লোড করা এক্সটেনশন থাকে যা আপনি perl 5.003 এর অধীনে তৈরি করেছেন বা
5.004, আপনি 5.004 এর সাথে তাদের ব্যবহার চালিয়ে যেতে পারেন, তবে আপনাকে পুনর্নির্মাণ এবং পুনরায় ইনস্টল করতে হবে
5.005 তাদের ব্যবহার করার জন্য এক্সটেনশন. দেখা INSTALL কিভাবে বিস্তারিত নির্দেশাবলীর জন্য
আপগ্রেড করতে পারবেন।
ডিফল্ট স্থাপন গঠন হয়েছে পরিবর্তিত
নতুন কনফিগার ডিফল্টগুলি 5.004 থেকে 5.005 পর্যন্ত একটি মসৃণ আপগ্রেড করার জন্য ডিজাইন করা হয়েছে, কিন্তু
আপনার পড়া উচিত INSTALL পরিবর্তনগুলিকে মানিয়ে নেওয়ার জন্য তাদের বিস্তারিত আলোচনার জন্য
আপনার সিস্টেম
পার্ল উৎস সঙ্গতি
যখন পরীক্ষামূলক বৈশিষ্ট্যগুলির একটিও সক্ষম না থাকে, তখন খুব কম ব্যবহারকারী-দৃশ্যমান হওয়া উচিত৷
পার্ল উত্স সামঞ্জস্য সমস্যা.
যদি থ্রেড সক্রিয় করা হয়, তাহলে কিছু সতর্কতা প্রযোজ্য। @_ এবং $_ আভিধানিক ভেরিয়েবলে পরিণত হয়। দ্য
এর প্রভাব ব্যবহারকারীর কাছে মূলত স্বচ্ছ হওয়া উচিত, তবে কিছু সীমানা রয়েছে
যে শর্তে ব্যবহারকারীকে সমস্যা সম্পর্কে সচেতন হতে হবে। উদাহরণস্বরূপ, "স্থানীয়(@_)"
একটি "লেক্সিকাল ভেরিয়েবল @_ ..." বার্তা স্থানীয়করণ করা যায় না। এটি একটি এ সক্ষম হতে পারে
ভবিষ্যতের সংস্করণ।
কিছু নতুন কীওয়ার্ড চালু করা হয়েছে। এই সাধারণত খুব কম আছে আশা করা হয়
সামঞ্জস্যের উপর প্রভাব। "নতুন "INIT" কীওয়ার্ড, "নতুন "লক" কীওয়ার্ড, এবং "নতুন "qr//" দেখুন
অপারেটর".
কিছু বেয়ারওয়ার্ড এখন সংরক্ষিত। আপনি জিজ্ঞাসা করলে এগুলির ব্যবহার একটি সতর্কতা উস্কে দেবে
তাদের জন্য "-w" সুইচ দিয়ে। দেখুন ""আমাদের" এখন একটি সংরক্ষিত শব্দ"।
C উৎস সঙ্গতি
নতুন বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য অভ্যন্তরীণগুলিতে প্রচুর সংখ্যক পরিবর্তন করা হয়েছে
এই মুক্তি।
মূল উৎস এখন ANSI C কম্পাইলার প্রয়োজন
একটি ANSI সি কম্পাইলার এখন প্রয়োজনীয় পার্ল তৈরি করতে। দেখা INSTALL.
· সমস্ত পার্ল গ্লোবাল ভেরিয়েবল এখন একটি স্পষ্ট উপসর্গের সাথে উল্লেখ করা আবশ্যক
সমস্ত পার্ল গ্লোবাল ভেরিয়েবল যা এক্সটেনশন দ্বারা ব্যবহারের জন্য দৃশ্যমান এখন একটি "PL_" আছে
উপসর্গ নতুন এক্সটেনশনগুলি তাদের অযোগ্য নাম দ্বারা পার্ল গ্লোবালকে "না" উল্লেখ করা উচিত।
বিবেক রক্ষা করার জন্য, আমরা গ্লোবালদের জন্য সীমিত পশ্চাদগামী সামঞ্জস্য প্রদান করি
"sv_undef" এবং "na" এর মতো ব্যাপকভাবে ব্যবহৃত হচ্ছে (যা এখন হিসাবে লেখা উচিত
"PL_sv_undef", "PL_na" ইত্যাদি)
যদি আপনি দেখতে পান যে আপনার XS এক্সটেনশনটি আর কম্পাইল করে না কারণ একটি পার্ল গ্লোবাল
দৃশ্যমান নয়, বিশ্বব্যাপী একটি "PL_" উপসর্গ যোগ করার চেষ্টা করুন এবং পুনর্নির্মাণ করুন।
এটা দৃঢ়ভাবে সুপারিশ করা হয় যে পার্ল API-এর সমস্ত ফাংশন যা দিয়ে শুরু হয় না
"perl" একটি "Perl_" উপসর্গের সাথে উল্লেখ করা হবে। ছাড়া বেয়ার ফাংশন নাম
"Perl_" উপসর্গ ম্যাক্রোর সাথে সমর্থিত, কিন্তু এই সমর্থন ভবিষ্যতে বন্ধ হয়ে যেতে পারে
মুক্তি.
পার্লাপি দেখুন।
· থ্রেড সক্রিয় করার ক্ষেত্রে উত্স সামঞ্জস্যের সমস্যা রয়েছে
থ্রেডিং সক্ষম করে তৈরি পার্লের জন্য নতুন "dTHR" ম্যাক্রো ব্যবহার করার জন্য এক্সটেনশন প্রয়োজন
প্রতি-থ্রেড ডেটা অ্যাক্সেস করতে হ্যান্ডেলটি শুরু করুন। যদি আপনি একটি কম্পাইলার ত্রুটি দেখতে পান যে
পরিবর্তনশীল "thr" ঘোষণা না করা সম্পর্কে কথা বলে (এক্সএস আছে এমন একটি মডিউল তৈরি করার সময়
কোড), আপনাকে "dTHR;" যোগ করতে হবে ব্লকের শুরুতে যা ত্রুটিটি প্রকাশ করেছে।
API ফাংশন "perl_get_sv("@",GV_ADD)" সরাসরি এর পরিবর্তে ব্যবহার করা উচিত
"GvSV(errgv)" হিসাবে পার্ল গ্লোবাল অ্যাক্সেস করা হচ্ছে। এপিআই কল এর সাথে পিছিয়ে সামঞ্জস্যপূর্ণ
বিদ্যমান পার্ল এবং থ্রেডিংয়ের সাথে উত্স সামঞ্জস্য প্রদান করে সক্রিয় করা হয়েছে।
আরও তথ্যের জন্য "সি উত্স সামঞ্জস্য" দেখুন।
বাইনারি সঙ্গতি
এই সংস্করণটি পুরানো সংস্করণগুলির সাথে বাইনারি সামঞ্জস্যপূর্ণ নয়৷ সব এক্সটেনশন হতে হবে
পুনরায় সংকলিত থ্রেড সক্ষম করে তৈরি আরও বাইনারিগুলি বাইনারিগুলির সাথে বেমানান
ছাড়া নির্মিত এটি মূলত ব্যবহারকারীর কাছে স্বচ্ছ হওয়া উচিত, কারণ সমস্ত বাইনারি বেমানান৷
কনফিগারেশনগুলির নিজস্ব অনন্য আর্কিটেকচারের নাম রয়েছে এবং এক্সটেনশন বাইনারিগুলি পাওয়া যায়
অনন্য অবস্থানে ইনস্টল করা. এটি বিভিন্ন কনফিগারেশনের সহাবস্থানের অনুমতি দেয়
একই ডিরেক্টরি অনুক্রম। দেখা INSTALL.
নিরাপত্তা সংশোধন করা হয়েছে may প্রভাবিত সঙ্গতি
কিছু কলঙ্কিত লিক এবং কলঙ্ক বাদ সংশোধন করা হয়েছে। এই "ব্যর্থতা" হতে পারে
স্ক্রিপ্ট যা পুরানো সংস্করণের সাথে কাজ করত। -DINCOMPLETE_TAINTS এর সাথে কম্পাইল করা হচ্ছে
কলঙ্কজনক আচরণে ন্যূনতম পরিমাণে পরিবর্তন সহ একটি পার্ল প্রদান করে। কিন্তু যে নোট
ফলে পার্ল পরিচিত নিরাপত্তাহীনতা থাকবে।
"-e" সুইচ সহ ওয়ানলাইনারগুলি আর অস্থায়ী ফাইল তৈরি করে না।
নিরুদ্বেগ নতুন কার্যভার সতর্কবার্তা উপস্থাপিত in 5.004
5.004 এ চালু করা অনেক নতুন সতর্কতা ঐচ্ছিক করা হয়েছে। এর মধ্যে কিছু
সতর্কতাগুলি এখনও উপস্থিত রয়েছে, তবে পার্লের নতুন বৈশিষ্ট্যগুলি তাদের প্রায়ই কম সমস্যা করে তোলে। দেখা
"নতুন ডায়াগনস্টিকস"।
লাইসেন্সকরণ
পার্লের অবদানকারীদের জন্য একটি নতুন সামাজিক চুক্তি রয়েছে। দেখা পোর্টিং/চুক্তি.
পার্ল ডকুমেন্টেশনের অনেক অংশে অন্তর্ভুক্ত লাইসেন্স পরিবর্তিত হয়েছে। পার্ল অধিকাংশ
ডকুমেন্টেশন আগে অন্তর্নিহিত GNU জেনারেল পাবলিক লাইসেন্স বা শৈল্পিক অধীনে ছিল
লাইসেন্স (ব্যবহারকারীর পছন্দে)। এখন অনেক ডকুমেন্টেশন দ্ব্যর্থহীনভাবে বলে
শর্তাবলী যার অধীনে এটি বিতরণ করা যেতে পারে। এই শর্তাবলী সাধারণভাবে অনেক কম সীমাবদ্ধ
GNU GPL এর চেয়ে। পার্ল এবং এতে তালিকাভুক্ত পৃথক পার্ল ম্যানপেজগুলি দেখুন।
মূল পরিবর্তন
টপিক
সতর্কতা: থ্রেডিং একটি বিবেচনা করা হয় পরীক্ষামূলক বৈশিষ্ট্য বাস্তবায়নের বিশদ বিবরণ
বিজ্ঞপ্তি ছাড়াই পরিবর্তন হতে পারে। পরিচিত সীমাবদ্ধতা এবং কিছু বাগ আছে. এগুলো প্রত্যাশিত
ভবিষ্যতের সংস্করণে ঠিক করা হবে।
দেখ README.threads.
সংকলনকারী
সতর্কতা: কম্পাইলার এবং সম্পর্কিত সরঞ্জাম বিবেচনা করা হয় পরীক্ষামূলক. বৈশিষ্ট্য পরিবর্তন হতে পারে
বিজ্ঞপ্তি ছাড়াই, এবং পরিচিত সীমাবদ্ধতা এবং বাগ আছে। যেহেতু কম্পাইলার সম্পূর্ণ
external to perl, ডিফল্ট কনফিগারেশন এটি তৈরি এবং ইনস্টল করবে।
কম্পাইলার একটি পার্ল প্রোগ্রামের তিনটি ভিন্ন ধরনের রূপান্তর তৈরি করে। সি
ব্যাকএন্ড সি কোড তৈরি করে যা এক্সিকিউশন শুরু হওয়ার ঠিক আগে পার্লের অবস্থা ক্যাপচার করে। এটা
নিয়মিত পার্ল ইন্টারপ্রেটারের কম্পাইল-টাইম ওভারহেডগুলি সরিয়ে দেয়, কিন্তু রান-টাইম
কর্মক্ষমতা তুলনামূলকভাবে একই থাকে। CC ব্যাকএন্ড অপ্টিমাইজ করা C কোড তৈরি করে
রান-টাইমে কোড পাথের সমতুল্য। CC ব্যাকএন্ড বড় জন্য বৃহত্তর সম্ভাবনা আছে
অপ্টিমাইজেশান, কিন্তু মাত্র কয়েকটি অপ্টিমাইজেশান বর্তমানে প্রয়োগ করা হয়েছে। বাইটকোড
ব্যাকএন্ড একটি প্ল্যাটফর্ম তৈরি করে দোভাষীর স্বাধীন বাইটকোড উপস্থাপনা
মৃত্যুদন্ড কার্যকর করার ঠিক আগে রাষ্ট্র। এইভাবে, বাইটকোড ব্যাক এন্ডও অনেক কিছুকে মুছে দেয়
দোভাষী ওভারহেড সংকলন.
কম্পাইলারটি বেশ কিছু মূল্যবান ইউটিলিটি নিয়ে আসে।
"বি::লিন্ট" হল একটি পরীক্ষামূলক মডিউল যা শনাক্ত করা এবং সন্দেহজনক কোড সম্পর্কে সতর্ক করা, বিশেষ করে
যে ক্ষেত্রে "-w" সুইচ সনাক্ত করে না।
"B::Deparse" পার্ল কোডকে ডিমিস্টিফাই করতে ব্যবহার করা যেতে পারে এবং বুঝতে পারে কিভাবে পার্ল নির্দিষ্ট কিছুকে অপ্টিমাইজ করে
গঠন করে
"B::Xref" ভেরিয়েবলের সমস্ত সংজ্ঞা এবং ব্যবহারের ক্রস রেফারেন্স রিপোর্ট তৈরি করে,
একটি প্রোগ্রামে সাবরুটিন এবং বিন্যাস।
"B::Showlex" এক নজরে একটি সাবরুটিন বা ফাইল দ্বারা ব্যবহৃত আভিধানিক ভেরিয়েবল দেখায়।
"perlcc" পার্ল কম্পাইল করার জন্য একটি সহজ ফ্রন্টএন্ড।
"ext/B/README", B, এবং সংশ্লিষ্ট কম্পাইলার মডিউল দেখুন।
নিয়মিত এক্সপ্রেশন
পার্লের রেগুলার এক্সপ্রেশন ইঞ্জিনকে গুরুত্ব সহকারে ওভারহল করা হয়েছে এবং অনেক নতুন কনস্ট্রাকশন করা হয়েছে
সমর্থিত হয় বেশ কিছু বাগ সংশোধন করা হয়েছে।
এখানে একটি আইটেমযুক্ত সারসংক্ষেপ:
অনেক নতুন এবং উন্নত অপ্টিমাইজেশান
RE ইঞ্জিনে পরিবর্তন:
অপ্রয়োজনীয় নোড অপসারণ;
সাবস্ট্রিং একত্রে একত্রিত;
প্রক্রিয়া করার জন্য নতুন ধরনের নোড (SUBEXPR)* এবং অনুরূপ অভিব্যক্তি
দ্রুত, ব্যবহার করা হয় যদি SUBEXPR-এর কোন পার্শ্বপ্রতিক্রিয়া না থাকে এবং মিল থাকে
একই দৈর্ঘ্যের স্ট্রিং;
ধ্রুবক সাবস্ট্রিংগুলির জন্য সন্ধানের মাধ্যমে আরও ভাল অপ্টিমাইজেশান;
$ দ্বারা নোঙ্গর করা ধ্রুবক সাবস্ট্রিংগুলির জন্য আরও ভাল অনুসন্ধান;
RE ইঞ্জিন ব্যবহার করে পার্ল কোডে পরিবর্তন:
s/longer/short/-তে আরও অপ্টিমাইজেশান;
study() কাজ করছিল না;
$&$`$' দেখা না গেলে /blah/ ইনডেক্স() এর একটি অ্যানালগ হিসাবে অপ্টিমাইজ করা যেতে পারে;
অপ্রয়োজনীয় অনুলিপি মিলিত-বিরুদ্ধ স্ট্রিং সরানো হয়েছে;
$` $' দেখা না থাকলে শুধুমাত্র স্ট্রিংটির মিলিত অংশ অনুলিপি করা হয়;
অনেক বাগ সংশোধন করা হয়েছে
উল্লেখ্য যে শুধুমাত্র প্রধান বাগ ফিক্সগুলি এখানে তালিকাভুক্ত করা হয়েছে৷ দেখা পরিবর্তন অন্যদের জন্য.
ব্যাকট্র্যাকিং $3 এর শুরু পুনরুদ্ধার করতে পারে না।
"জটিল" সাব এক্সপ্রেশনে * বা + এর জন্য সর্বাধিক গণনা হলে কোনও প্রতিক্রিয়া নেই৷
{3,34567}-এর জন্য একইভাবে (কিন্তু কম্পাইলের সময়ে) পৌঁছেছিল
সর্বাধিক গণনার উপর আদিম সীমাবদ্ধতা হ্রাস করার জন্য চালু করা হয়েছে
একটি segfault সম্ভাবনা;
(শূন্য-দৈর্ঘ্য)* সেগফল্ট হতে পারে;
(শূন্য-দৈর্ঘ্য)* নিষিদ্ধ ছিল;
দীর্ঘ REs অনুমোদিত ছিল না;
/RE/g a এর পরে একই অবস্থানে ম্যাচগুলি এড়িয়ে যেতে পারে
শূন্য-দৈর্ঘ্য ম্যাচ;
নতুন নিয়মিত অভিব্যক্তি গঠন
নিম্নলিখিত নতুন সিনট্যাক্স উপাদান সমর্থিত:
(?<=RE)
(?
(?{ কোড })
(?ix)
(? i:RE)
(?(COND)YES_RE|NO_RE)
(?>RE)
\z
প্রি-কম্পাইল করা রেগুলার এক্সপ্রেশনের জন্য নতুন অপারেটর
"নতুন "qr//" অপারেটর দেখুন।
অন্যান্য উন্নতি
আরও ভাল ডিবাগিং আউটপুট (সম্ভবত রঙ সহ),
এমনকি নন-ডিবাগিং পার্ল থেকেও;
RE ইঞ্জিন কোড এখন C এর মত দেখাচ্ছে, অ্যাসেম্বলারের মত নয়;
'পুনরায় ব্যবহার করুন' নির্দেশের দ্বারা সংশোধনযোগ্য RE-এর আচরণ;
উন্নত ডকুমেন্টেশন;
টেস্ট স্যুট উল্লেখযোগ্যভাবে প্রসারিত;
সিনট্যাক্স [:^উপরের:] ইত্যাদি, অক্ষর শ্রেণীর ভিতরে সংরক্ষিত;
বেমানান পরিবর্তন
(?i) ঘেরা গোষ্ঠীর ভিতরে স্থানীয়করণ;
$( আর RE তে প্রসারিত হয় না;
/RE/g একই অবস্থানে মিলতে পারে (শূন্য নয় দৈর্ঘ্য সহ)
একটি শূন্য-দৈর্ঘ্য ম্যাচের পরে (বাগ ফিক্স)।
perlre এবং perlop দেখুন.
উন্নত malloc ()
বিস্তারিত জানার জন্য "malloc.c" এর শুরুতে ব্যানার দেখুন।
কুইকোর্ট is অন্ত বাস্তবায়িত
পার্ল এখন তার নিজস্ব অত্যন্ত অপ্টিমাইজ করা আছে qsort() রুটিন নতুন qsort() প্রতিরোধী
অসামঞ্জস্যপূর্ণ তুলনা ফাংশনগুলিতে, তাই পার্লের "সর্ট()" কোরডাম্পগুলিকে উস্কে দেবে না
খারাপভাবে লিখিত সাজানোর সাবরুটিন দেওয়া হলে আরও বেশি। (কিছু সি লাইব্রেরি "qsort()" ছিল যা
এই সমস্যাটি হওয়ার আগে ব্যবহার করা হচ্ছে।) আমাদের পরীক্ষায়, নতুন "qsort()" প্রয়োজন
সমস্ত পরিচিত "qsort()" এর মধ্যে গড়ে ন্যূনতম সংখ্যক জোড়া-ভিত্তিক তুলনা করে
বাস্তবায়ন
"perlfunc/sort" দেখুন।
নির্ভরযোগ্য সংকেত
পার্লের সিগন্যাল হ্যান্ডলিং এলোমেলো ক্র্যাশের জন্য সংবেদনশীল, কারণ সিগন্যাল আসে
অ্যাসিঙ্ক্রোনাসভাবে, এবং পার্ল রানটাইম ইচ্ছাকৃত সময়ে পুনরায় প্রবেশ করা হয় না।
যাইহোক, যখন থ্রেড হয় তখন নির্ভরযোগ্য সংকেতের একটি পরীক্ষামূলক বাস্তবায়ন পাওয়া যায়
সক্রিয় "থ্রেড::সিগন্যাল" দেখুন। এছাড়াও দেখুন INSTALL কিভাবে একটি পার্ল তৈরি করতে সক্ষম
থ্রেড।
নির্ভরযোগ্য গাদা পয়েন্টার
অভ্যন্তরীণ এখন শুধুমাত্র অনুমানযোগ্য সময়ে পার্ল স্ট্যাক পুনরায় বরাদ্দ করে। নির্দিষ্টভাবে,
ম্যাজিক কলগুলি কখনই স্ট্যাকের পুনঃনির্ধারণকে ট্রিগার করে না, কারণ সমস্ত পুনঃপ্রবেশ
রানটাইম একটি "স্ট্যাকের স্ট্যাক" ব্যবহার করে পরিচালনা করা হয়। এই ক্যাশে নির্ভরযোগ্যতা উন্নত করা উচিত
ইন্টারনাল এবং XSUB-এ স্ট্যাক পয়েন্টার।
অধিক উদার চিকিৎসা of বহন আয়
পার্ল স্ক্রিপ্টে আক্ষরিক ক্যারেজ রিটার্নের সম্মুখীন হলে অভিযোগ করত। এখন তারা
প্রোগ্রাম পাঠ্যের মধ্যে বেশিরভাগই হোয়াইটস্পেসের মতো আচরণ করা হয়। ভিতরে স্ট্রিং আক্ষরিক এবং এখানে
নথি, আক্ষরিক ক্যারেজ রিটার্ন উপেক্ষা করা হয় যদি সেগুলি লাইনফিডের সাথে যুক্ত হয়, অথবা
হোয়াইটস্পেস হিসাবে ব্যাখ্যা করা হয় যদি তারা একা দাঁড়ায়। এই আচরণ মানে যে আক্ষরিক
ফাইলে ক্যারেজ রিটার্ন এড়ানো উচিত। আপনি পুরোনো পেতে পারেন, আরও সামঞ্জস্যপূর্ণ (কিন্তু
কম উদার) আচরণ নির্মাণের সময় প্রিপ্রসেসর চিহ্ন "PERL_STRICT_CR" সংজ্ঞায়িত করে
পার্ল অবশ্যই, "\r" এর মতো পালানোর সাথে এই সমস্ত কিছুর সম্পর্ক নেই
স্ট্রিং মধ্যে পরিচালিত.
মনে রাখবেন যে এটি কোনওভাবে জাদুকরীভাবে আপনাকে সমস্ত পাঠ্য ফাইলকে ডস ফর্ম্যাটে রাখার অনুমতি দেয় না।
উদার আচরণ শুধুমাত্র সেই ফাইলগুলিতে প্রযোজ্য যা পার্ল নিজেই পার্স করে। যদি আপনার সি কম্পাইলার
ফাইলগুলিতে ক্যারেজ রিটার্নের অনুমতি দেয় না, আপনি এখনও মডিউল তৈরি করতে অক্ষম হতে পারেন
একটি সি কম্পাইলার প্রয়োজন।
স্মৃতি তথ্য ফাঁসের
lvalue প্রসঙ্গে ব্যবহার করা হলে "substr", "pos" এবং "vec" আর মেমরি ফাঁস করে না। অনেক
একাধিক দোভাষী এম্বেড করা অ্যাপ্লিকেশনগুলিকে প্রভাবিত করে এমন ছোট ফাঁসগুলি সংশোধন করা হয়েছে৷
উত্তম সমর্থন উন্নত বহু দোভাষী
বিল্ড-টাইম বিকল্প "-DMULTIPLICITY"-এ অনেকগুলি বিবরণ পুনরায় কাজ করা হয়েছে৷ কিছু
পূর্বে গ্লোবাল ভেরিয়েবল যা প্রতি-দোভাষী হওয়া উচিত ছিল এখন। যত্ন সহকারে,
এটি দোভাষীদের একে অপরকে কল করার অনুমতি দেয়। CPAN-এ "PerlInterp" এক্সটেনশন দেখুন।
আচরণ of স্থানীয়() on বিন্যাস এবং কাটা উপাদান is এখন ভাল-সংজ্ঞায়িত
"এর মাধ্যমে অস্থায়ী মান দেখুন স্থানীয়()" পারলসাবে।
"%!" is স্বচ্ছভাবে বাঁধা থেকে দ্য এরনো মডিউল
পার্লভার এবং এরনো দেখুন।
ছদ্ম-হ্যাশ হয় সমর্থিত
perlref দেখুন।
"এক্সপিআর প্রতিটির জন্য EXPR" is সমর্থিত
পার্লসিন দেখুন।
মূলশব্দ পারেন be বিশ্বব্যাপী ওভাররাইড করা
perlsub দেখুন।
$^ই is অর্থপূর্ণ on Win32
পার্লভার দেখুন।
"প্রতিটির জন্য (1..1000000)" অপ্টিমাইজ
"foreach (1..1000000)" এখন একটি গণনা লুপে অপ্টিমাইজ করা হয়েছে৷ এটা বরাদ্দ করার চেষ্টা করে না
একটি 1000000-আকার তালিকা আর.
"ফু::" পারেন be ব্যবহৃত as পরোক্ষভাবে উদ্ধৃত প্যাকেজ নাম
একটি প্যাকেজ হিসাবে একই নামের একটি সাবরুটিন যখন বেয়ারওয়ার্ডগুলি অজ্ঞাত আচরণের কারণ হয়৷
সংজ্ঞায়িত করা হয়েছে. এইভাবে, "নতুন Foo @args", "Foo()" এ কলের ফলাফল ব্যবহার করুন
"Foo" এর পরিবর্তে একটি আক্ষরিক হিসাবে বিবেচিত হচ্ছে। বেয়ারওয়ার্ড লেখার প্রস্তাবিত উপায়
পরোক্ষ অবজেক্ট স্লট হল "নতুন Foo:: @args"। মনে রাখবেন যে পদ্ধতিটিকে "new()" বলা হয়
"Foo" এর প্রথম আর্গুমেন্ট সহ, "Foo::" নয়।
"বিদ্যমান $Foo::{বার::}" পরীক্ষা অস্তিত্ব of a প্যাকেজ
আসলে এটি তৈরি না করে একটি প্যাকেজের অস্তিত্বের জন্য পরীক্ষা করা অসম্ভব ছিল
আগে. এখন "বিদ্যমান $Foo::{Bar::}" ব্যবহার করে পরীক্ষা করা যেতে পারে যে "Foo::Bar" নামস্থানে আছে কিনা
তৈরি করা হয়েছে।
উত্তম স্থানীয় সমর্থন
পার্লোকাল দেখুন।
পরীক্ষামূলক সমর্থন উন্নত 64-বিট প্ল্যাটফর্মের
Perl5 সবসময় 64-বিট লং সহ সিস্টেমে 64-বিট সমর্থন করে। 5.005 দিয়ে শুরু,
32-বিট দীর্ঘ এবং 64-বিট 'লং লং' সহ সিস্টেমগুলির জন্য পরীক্ষামূলক সমর্থনের শুরু
পূর্ণসংখ্যা যোগ করা হয়েছে। আপনি যদি config.sh-এ আপনার ccflags-এ -DUSE_LONG_LONG যোগ করেন (বা
ম্যানুয়ালি এটিকে perl.h-এ সংজ্ঞায়িত করুন) তাহলে পার্ল 'লং লং' সমর্থন সহ নির্মিত হবে। সেখানে
অনেক কম্পাইলার সতর্কতা হবে, এবং ফলস্বরূপ পার্ল সমস্ত সিস্টেমে কাজ নাও করতে পারে। সেখানে
তৃতীয় পক্ষের এক্সটেনশন এবং লাইব্রেরি সম্পর্কিত অন্যান্য অনেক সমস্যা। এই বিকল্পটি বিদ্যমান
লোকেদের সেই বিষয়গুলিতে কাজ করার অনুমতি দেওয়ার জন্য।
প্রোটোটাইপ() আয় দরকারী ফলাফল on বিল্টিনস
perlfunc এ "প্রোটোটাইপ" দেখুন।
সম্প্রসারিত সমর্থন উন্নত ব্যতিক্রম হ্যান্ডলিং
"die()" এখন একটি রেফারেন্স মান গ্রহণ করে, এবং $@ ব্যতিক্রম ফাঁদে সেই মানটিতে সেট করা হয়।
এটি ব্যতিক্রম বস্তুর প্রচার করা সম্ভব করে তোলে। এটি একটি অনথিভুক্ত
পরীক্ষামূলক বৈশিষ্ট্য।
পুনঃ আশীর্বাদ in ধ্বংস() সমর্থিত উন্নত শিকল ধ্বংস() পদ্ধতি
perlobj-এ "Destructors" দেখুন।
সব "printf" বিন্যাস ধর্মান্তর হয় ঘাঁটা অন্ত
perlfunc এ "printf" দেখুন।
নতুন "এটা" শব্দ
"INIT" সাবগুলি হল "BEGIN" এবং "END" এর মত, কিন্তু সেগুলি পার্ল রানটাইমের ঠিক আগে চালানো হয়৷
কার্যকর করা শুরু করে। যেমন, পার্ল কম্পাইলার আরম্ভ করার জন্য "INIT" ব্লক ব্যবহার করে
XSUBs-এ পয়েন্টার সমাধান করুন।
নতুন "লক" শব্দ
"লক" কীওয়ার্ড হল থ্রেডেড পার্লে আদিম সিঙ্ক্রোনাইজেশন। কখন
থ্রেড সক্রিয় করা নেই, এটি বর্তমানে একটি নুপ।
উত্স সামঞ্জস্যের উপর প্রভাব কমানোর জন্য এই কীওয়ার্ডটি "দুর্বল", অর্থাৎ, ব্যবহারকারী-সংজ্ঞায়িত যেকোনো
একই নামের সাবরুটিন এটিকে ওভাররাইড করে, যদি না একটি "ব্যবহার থ্রেড" দেখা যায়।
নতুন "কিউআর//" অপারেটর
"qr//" অপারেটর, যা অন্যান্য উদ্ধৃতি-সদৃশ অপারেটরগুলির সাথে সিনট্যাক্টিকভাবে অনুরূপ,
প্রি-কম্পাইল করা রেগুলার এক্সপ্রেশন তৈরি করতে ব্যবহৃত হয়। এই সংকলিত ফর্ম এখন স্পষ্টভাবে হতে পারে
চলকের চারপাশে পাস, এবং অন্যান্য নিয়মিত অভিব্যক্তি মধ্যে interpolated. perlop দেখুন.
"আমাদের" is এখন a সংরক্ষিত শব্দ
"আমাদের" নামে একটি সাবরুটিনকে কল করা এখন "-w" ব্যবহার করার সময় একটি সতর্কতা উস্কে দেবে
সুইচ।
বাঁধা অ্যারে হয় এখন সম্পূর্ণরূপে সমর্থিত
টাই::অ্যারে দেখুন।
বাঁধা হ্যান্ডলগুলি সমর্থন is উত্তম
বেশ কিছু অনুপস্থিত হুক যোগ করা হয়েছে. TIEARRAY-এর জন্য একটি নতুন বেস ক্লাসও রয়েছে
বাস্তবায়ন টাই::অ্যারে দেখুন।
4th যুক্তি থেকে substr
substr() এখন একটি অপারেশনে ফেরত এবং প্রতিস্থাপন করতে পারে। ঐচ্ছিক ৪র্থ যুক্তি হল
প্রতিস্থাপন স্ট্রিং perlfunc-এ "substr" দেখুন।
নেতিবাচক LENGTH এর যুক্তি থেকে সংযুক্ত করান
স্প্লিস() একটি নেতিবাচক LENGTH যুক্তি সহ এখন LENGTH যা করেছে তার অনুরূপ কাজ করে৷
substr(). পূর্বে একটি ঋণাত্মক LENGTH কে 0 হিসাবে গণ্য করা হত। পারলফাঙ্কে "স্প্লিস" দেখুন।
জাদু মূল্যবোধ হয় এখন অধিক ঐন্দ্রজালিক
আপনি যখন "substr($x, 5) = "hi" এর মত কিছু বলেন, তখন স্কেলার ফেরত আসে substr() is
বিশেষ, এতে যে কোনো পরিবর্তন $x কে প্রভাবিত করে। (এটাকে বলা হয় 'ম্যাজিক lvalue'
কারণ একটি 'lvalue' একটি অ্যাসাইনমেন্টের বাম দিকের কিছু।) সাধারণত, এটি হয়
আপনি ঠিক কি ঘটতে আশা করবেন, কিন্তু পার্ল একই জাদু ব্যবহার করে যদি আপনি ব্যবহার করেন substr(),
pos(), বা vec() একটি প্রেক্ষাপটে যেখানে সেগুলি সংশোধন করা যেতে পারে, যেমন একটি রেফারেন্স নেওয়া
"\" অথবা একটি সাব-এর যুক্তি হিসেবে যা @_ সংশোধন করে। পূর্ববর্তী সংস্করণে, এই 'জাদু' শুধুমাত্র
এক পথে চলে গেছে, কিন্তু এখন স্কেলারে পরিবর্তন হয়েছে যা ম্যাজিককে নির্দেশ করে (উপরের উদাহরণে $x)
ম্যাজিক মূল্যকেও প্রভাবিত করে। উদাহরণস্বরূপ, এই কোডটি এখন ভিন্নভাবে কাজ করে:
$x = "হ্যালো";
সাব প্রিন্টিট {
$x = "g'bye";
প্রিন্ট $__[0], "\n";
}
printit(substr($x, 0, 5));
পূর্ববর্তী সংস্করণে, এটি "হ্যালো" প্রিন্ট করবে, কিন্তু এটি এখন "g'bye" প্রিন্ট করে।
<> এখন সার্চ in রেকর্ড
যদি $/ একটি পূর্ণসংখ্যার একটি রেফারেন্স হয়, অথবা একটি স্কেলার যা একটি পূর্ণসংখ্যা ধারণ করে, তাহলে <> পড়বে
লাইনের পরিবর্তে রেকর্ড। আরও তথ্যের জন্য, পার্লভারে "$/" দেখুন।
সমর্থিত প্ল্যাটফর্ম
কনফিগারে অনেক ক্রমবর্ধমান উন্নতি রয়েছে। পার্ল নির্মাণের জন্য সাইট-ব্যাপী নীতি এখন করতে পারেন
Policy.sh এর মাধ্যমে স্থায়ী করা হবে। কনফিগার ব্যবহার করা কমান্ড-লাইন আর্গুমেন্টগুলিও রেকর্ড করে
in config.sh.
নতুন প্ল্যাটফর্ম
BeOS এখন সমর্থিত। দেখা README.beos.
DOS এখন DJGPP টুলের অধীনে সমর্থিত। দেখা README.dos (কিছুতে পারলডো হিসাবে ইনস্টল করা হয়েছে
সিস্টেম)।
MiNT এখন সমর্থিত। দেখা README.mint.
MPE/iX এখন সমর্থিত। README.mpeix দেখুন।
MVS (ওরফে OS390, ওরফে ওপেন সংস্করণ) এখন সমর্থিত৷ দেখা README.os390 ( হিসেবে ইনস্টল করা হয়েছে
কিছু সিস্টেমে perlos390)।
স্ট্র্যাটাস ভিওএস এখন সমর্থিত। দেখা README.vos.
পরিবর্তন in বিদ্যমান সমর্থন
Win32 সমর্থন ব্যাপকভাবে উন্নত করা হয়েছে। পার্ল অবজেক্টের জন্য সমর্থন, একটি C++ এনক্যাপসুলেশন
পার্ল GCC এবং EGCS এখন Win32-এ সমর্থিত। দেখা README.win32, ওরফে পার্লউইন32।
VMS কনফিগারেশন সিস্টেম পুনর্লিখন করা হয়েছে. দেখা README.vms ( হিসেবে ইনস্টল করা হয়েছে README_vms on
কিছু সিস্টেম)।
বেশিরভাগ ইউনিক্স প্ল্যাটফর্মের ইঙ্গিত ফাইলগুলিতে ক্রমবর্ধমান উন্নতি দেখা গেছে।
মডিউল এবং প্রগমাতা
নতুন মডিউল
B পার্ল কম্পাইলার এবং টুলস। দেখুন বি.
ডেটা::ডাম্পার
পার্ল ডেটা প্রিন্ট করার জন্য একটি মডিউল। ডেটা দেখুন::ডাম্পার।
ডাম্পভ্যালু
পর্দায় পার্ল মান ডাম্প করার জন্য একটি মডিউল। ডাম্পভ্যালু দেখুন।
এরনো
আরও সুবিধাজনকভাবে ত্রুটিগুলি দেখার জন্য একটি মডিউল৷ এরনো দেখুন।
ফাইল::বিশেষ
ফাইল অপারেশনের জন্য একটি পোর্টেবল API।
ExtUtils::ইনস্টল করা হয়েছে
ইনস্টল করা মডিউলগুলি অনুসন্ধান এবং পরিচালনা করুন।
ExtUtils::প্যাকলিস্ট
প্যাকলিস্ট ফাইল ম্যানিপুলেট করুন।
মারাত্মক
ফাংশন/বিল্টিনগুলি সফল বা মারা যায়।
IPC::SysV
পার্লে সিস্টেম V IPC অপারেশনের জন্য ধ্রুবক এবং অন্যান্য সমর্থন পরিকাঠামো।
পরীক্ষা
টেস্ট স্যুট লেখার জন্য একটি কাঠামো।
টাই::অ্যারে
বাঁধা অ্যারের জন্য বেস ক্লাস।
টাই::হ্যান্ডেল
বাঁধা হাতল জন্য বেস ক্লাস.
সুতা
পার্ল থ্রেড তৈরি, ম্যানিপুলেশন এবং সমর্থন।
attrs
সাবরুটিন বৈশিষ্ট্য সেট করুন।
ক্ষেত্র
কম্পাইল-টাইম ক্লাস ক্ষেত্র।
রেগুলার এক্সপ্রেশনের আচরণ নিয়ন্ত্রণ করার জন্য বিভিন্ন বাস্তবতা।
পরিবর্তন in বিদ্যমান মডিউল
উচ্চতার চিহ্ন
আপনি এখন পরীক্ষা চালাতে পারেন x পরীক্ষার সঠিক সংখ্যা অনুমান করার পরিবর্তে সেকেন্ড
চালানো।
ভালো সময় রাখে।
দোষারোপ করা
কার্প একটি নতুন ফাংশন আছে ক্লক(). ক্লক() সতর্ক করে, যেমন কার্প(), কিন্তু একটি স্ট্যাক যোগ করে
ত্রুটি বার্তা ব্যাকট্রেস, মত স্বীকার ().
CGI CGI সংস্করণ 2.42-এ আপডেট করা হয়েছে।
Fcntl
আরও Fcntl ধ্রুবক যোগ করা হয়েছে: F_SETLK64, F_SETLKW64, O_LARGEFILE বড় (এর চেয়ে বেশি)
4G) ফাইল অ্যাক্সেস (64-বিট সমর্থন এখনও কাজ করছে না, যদিও, তাই পাওয়ার দরকার নেই
অত্যধিক উত্তেজিত), ফ্রি/নেট/ওপেনবিএসডি লকিং আচরণের পতাকা F_FLOCK, F_POSIX, Linux
F_SHLCK, এবং O_ACCMODE: O_RDONLY, O_WRONLY, এবং O_RDWR-এর মুখোশ।
গণিত::জটিল
অ্যাক্সেসর পদ্ধতিগুলি Re, Im, arg, abs, rho, theta, পদ্ধতিগুলি করতে পারে ($z->পুনরায়()) এখনও
মিউটেটর হিসেবে কাজ করুন ($z->Re(3))।
গণিত::ট্রিগ
একটি সামান্য বিট রেডিয়াল ত্রিকোণমিতি (নলাকার এবং গোলাকার) যোগ করা হয়েছে, উদাহরণস্বরূপ
মহান বৃত্ত দূরত্ব.
POSIX
POSIX এর এখন নিজস্ব প্ল্যাটফর্ম-নির্দিষ্ট ইঙ্গিত ফাইল রয়েছে।
ডিবি_ফাইল
DB_File বার্কলে ডিবি এর 2.x সংস্করণ সমর্থন করে। "ext/DB_File/Changes" দেখুন।
মেকমেকার
MakeMaker এখন খালি মেকফাইল লিখতে সমর্থন করে, সেই সাইটটি নির্দিষ্ট করার একটি উপায় প্রদান করে
উমাস্ক() নীতি সম্মান করা উচিত. এর ম্যানিপুলেশনের জন্য আরও ভাল সমর্থন রয়েছে
প্যাকলিস্ট ফাইল, এবং ইনস্টল মডিউল সম্পর্কে তথ্য পাওয়া।
স্থাপত্য-নির্ভর এবং স্থাপত্য-স্বাধীন ফাইল উভয়ই এক্সটেনশন
এখন সর্বদা স্থাপত্য-নির্ভর অবস্থানে সম্পূর্ণরূপে ইনস্টল করা হয়।
পূর্বে, শেয়ারযোগ্য অংশগুলি আর্কিটেকচার এবং পার্ল জুড়ে উভয়ই ভাগ করা হয়েছিল
সংস্করণ এবং তাই নতুন সংস্করণের সাথে ওভাররাইট করার জন্য দায়ী ছিল যা হতে পারে
সূক্ষ্ম অসঙ্গতি আছে।
সিপিএএন
perlmodinstall এবং CPAN দেখুন।
বেশিরভাগ প্ল্যাটফর্মে Cwd Cwd::cwd দ্রুততর।
উপযোগ পরিবর্তন
"h2ph" এবং সম্পর্কিত ইউটিলিটিগুলি ব্যাপকভাবে ওভারহল করা হয়েছে৷
"perlcc", কম্পাইলারের জন্য একটি নতুন পরীক্ষামূলক ফ্রন্ট এন্ড উপলব্ধ।
অশোধিত GNU "কনফিগার" এমুলেটরকে এখন "configure.gnu" বলা হয় যাতে পদদলিত না হয়
কেস-অসংবেদনশীল ফাইল সিস্টেমের অধীনে "কনফিগার করুন"।
"perldoc" বরং ধীর হতে ব্যবহৃত. ধীরগতির বৈশিষ্ট্যগুলি এখন ঐচ্ছিক৷ নির্দিষ্টভাবে,
কেস-অসংবেদনশীল অনুসন্ধানের জন্য "-i" সুইচ প্রয়োজন, এবং পুনরাবৃত্তিমূলক অনুসন্ধানের জন্য "-r" প্রয়োজন। তুমি পারবে
পুরানো আচরণ পেতে এই সুইচগুলিকে "PERLDOC" পরিবেশ পরিবর্তনশীলে সেট করুন।
ডকুমেন্টেশন পরিবর্তন
Config.pm-এ এখন ভেরিয়েবলের একটি শব্দকোষ রয়েছে।
Porting/patching.pod কিভাবে প্যাচ তৈরি এবং জমা দিতে হবে তার বিস্তারিত নির্দেশাবলী আছে
পার্ল
perlport কিভাবে পোর্টেবল লিখতে হয় তার নির্দেশিকা নির্দিষ্ট করে।
perlmodinstall বর্ণনা করে কিভাবে "CPAN" সাইট থেকে মডিউল আনতে এবং ইনস্টল করতে হয়।
আরও কিছু পার্ল ফাঁদ এখন নথিভুক্ত করা হয়েছে। পার্লট্র্যাপ দেখুন।
perlopentut ব্যবহারের উপর একটি টিউটোরিয়াল দেয় খোলা ().
perlreftut রেফারেন্সের উপর একটি টিউটোরিয়াল দেয়।
perlthrtut থ্রেডের উপর একটি টিউটোরিয়াল দেয়।
নতুন নিদানবিদ্যা
CORE::%s() হিসাবে অস্পষ্ট কল সমাধান করা হয়েছে, এইভাবে যোগ্য বা ব্যবহার করুন &
(W) আপনার ঘোষিত একটি সাবরুটিন একটি পার্ল কীওয়ার্ডের মতো একই নাম রয়েছে এবং আপনার আছে
এক বা অন্যকে কল করার জন্য যোগ্যতা ছাড়াই নাম ব্যবহার করা হয়েছে। পার্ল সিদ্ধান্ত নিয়েছে
বিল্টইন কল করুন কারণ সাবরুটিন আমদানি করা হয় না।
একটি সাবরুটিন কল হিসাবে জোর করে ব্যাখ্যা করতে, হয় এর আগে একটি অ্যাম্পারস্যান্ড রাখুন৷
সাবরুটিন নাম, বা এর প্যাকেজ সহ নামটি যোগ্যতা অর্জন করুন। বিকল্পভাবে, আপনি আমদানি করতে পারেন
সাবরুটিন (অথবা ভান করুন যে এটি "সাবস ব্যবহার করুন" প্রাগমা দিয়ে আমদানি করা হয়েছে)।
এটিকে পার্ল অপারেটর হিসাবে নীরবে ব্যাখ্যা করতে, অপারেটরে "CORE::" উপসর্গটি ব্যবহার করুন
(যেমন "CORE::log($x)") অথবা সাবরুটিনকে অবজেক্ট পদ্ধতি হিসেবে ঘোষণা করে (দেখুন
"attrs")।
হ্যাশে অ্যারে জোর করার সময় খারাপ সূচক
(F) সূচীটি হ্যাশের মধ্যে দেখা গেছে যেটি একটি ছদ্ম-হ্যাশের 0'তম উপাদান নয়
আইনি সূচক মান 1 বা তার বেশি হতে হবে। perlref দেখুন।
বেয়ারওয়ার্ড "%s" অনুপস্থিত প্যাকেজ বোঝায়
(W) আপনি "Foo::" ফর্মের একটি যোগ্য বেয়ারওয়ার্ড ব্যবহার করেছেন, কিন্তু কম্পাইলার অন্য কোনটি দেখেনি
সেই বিন্দুর আগে সেই নামস্থানের ব্যবহার। সম্ভবত আপনি একটি প্যাকেজ পূর্ব ঘোষণা করতে হবে?
একটি অনির্ধারিত মানের উপর "%s" পদ্ধতিতে কল করা যাবে না
(F) আপনি একটি মেথড কলের সিনট্যাক্স ব্যবহার করেছেন, কিন্তু অবজেক্ট রেফারেন্স দ্বারা পূর্ণ স্লট
অথবা প্যাকেজ নামের একটি অনির্ধারিত মান রয়েছে। এই মত কিছু পুনরুত্পাদন করা হবে
ত্রুটি:
$BADREF = 42;
প্রক্রিয়া $BADREF 1,2,3;
$BADREF->প্রক্রিয়া(1,2,3);
nosuid-এর জন্য "%s" স্ক্রিপ্টের ফাইল সিস্টেম চেক করা যাচ্ছে না
(P) কিছু কারণে আপনি nosuid-এর জন্য স্ক্রিপ্টের ফাইল সিস্টেম চেক করতে পারবেন না।
হ্যাশ মধ্যে অ্যারে জোর করতে পারবেন না
(F) আপনি একটি অ্যারে ব্যবহার করেছেন যেখানে একটি হ্যাশ প্রত্যাশিত ছিল, কিন্তু অ্যারের কোন তথ্য নেই
কীভাবে কী থেকে অ্যারে সূচকে ম্যাপ করবেন। আপনি শুধুমাত্র একটি অ্যারে আছে যে সঙ্গে এটি করতে পারেন
সূচক 0 এ হ্যাশ রেফারেন্স।
একটি eval-স্ট্রিং থেকে সাবরুটিনে যাওয়া যাবে না
(F) "গোটো সাবরুটিন" কলটি একটি ইভাল "স্ট্রিং" থেকে লাফ দেওয়ার জন্য ব্যবহার করা যাবে না। (আপনি
ইভাল {BLOCK} থেকে বেরিয়ে আসতে এটি ব্যবহার করতে পারেন, কিন্তু আপনি সম্ভবত চান না৷)
সিউডো-হ্যাশ উপাদান স্থানীয়করণ করা যাবে না
(F) আপনি "স্থানীয় $ar->{'key'} এর মতো কিছু বলেছেন, যেখানে $ar একটি রেফারেন্স
ছদ্ম-হ্যাশ এটি এখনও কার্যকর করা হয়নি, তবে আপনি এর দ্বারা অনুরূপ প্রভাব পেতে পারেন
সরাসরি সংশ্লিষ্ট অ্যারে উপাদান স্থানীয়করণ: "স্থানীয় $ar->[$ar->[0]{'key'}]"।
%% ব্যবহার করতে পারবেন না! কারণ Errno.pm উপলব্ধ নয়
(চ) প্রথমবার %! হ্যাশ ব্যবহার করা হয়, পার্ল স্বয়ংক্রিয়ভাবে Errno.pm মডিউল লোড করে।
এরনো মডিউলটি % টাই করবে বলে আশা করা হচ্ছে! $ এর জন্য প্রতীকী নাম প্রদান করতে হ্যাশ! ভুল
মান।
"%s" এর জন্য একটি নম্বর খুঁজে পাওয়া যাচ্ছে না
(F) "CORE::word" ফর্মের একটি স্ট্রিং দেওয়া হয়েছিল প্রোটোটাইপ(), কিন্তু কোন বিল্টইন নেই
"শব্দ" নামের সাথে।
ক্যারেক্টার ক্লাস সিনট্যাক্স [. .] ভবিষ্যতের এক্সটেনশনের জন্য সংরক্ষিত
(W) রেগুলার এক্সপ্রেশন ক্যারেক্টার ক্লাসের মধ্যে ([]) সিনট্যাক্স "[" দিয়ে শুরু হয়।
এবং ".]" দিয়ে শেষ হচ্ছে ভবিষ্যতের এক্সটেনশনের জন্য সংরক্ষিত৷ যদি আপনার প্রতিনিধিত্ব করতে হয়
একটি নিয়মিত অভিব্যক্তি অক্ষর শ্রেণীর ভিতরে যারা অক্ষর ক্রম, শুধু উদ্ধৃতি
ব্যাকস্ল্যাশ সহ বর্গাকার বন্ধনী: "\[।" এবং ".\]".
অক্ষর শ্রেণীর সিনট্যাক্স [: :] ভবিষ্যতের এক্সটেনশনের জন্য সংরক্ষিত
(W) রেগুলার এক্সপ্রেশন ক্যারেক্টার ক্লাসের মধ্যে ([]) সিনট্যাক্স "[:" দিয়ে শুরু হয়
এবং ":]" দিয়ে শেষ হওয়া ভবিষ্যতের এক্সটেনশনের জন্য সংরক্ষিত। যদি আপনার প্রতিনিধিত্ব করতে হয়
একটি নিয়মিত অভিব্যক্তি অক্ষর শ্রেণীর ভিতরে যারা অক্ষর ক্রম, শুধু উদ্ধৃতি
ব্যাকস্ল্যাশ সহ বর্গাকার বন্ধনী: "\[:" এবং ":\]"।
অক্ষর শ্রেণীর সিনট্যাক্স [= =] ভবিষ্যতের এক্সটেনশনের জন্য সংরক্ষিত
(W) রেগুলার এক্সপ্রেশন ক্যারেক্টার ক্লাসের মধ্যে ([]) সিনট্যাক্স "[=" দিয়ে শুরু হয়
এবং "=]" দিয়ে শেষ হওয়া ভবিষ্যতের এক্সটেনশনের জন্য সংরক্ষিত। যদি আপনার প্রতিনিধিত্ব করতে হয়
একটি নিয়মিত অভিব্যক্তি অক্ষর শ্রেণীর ভিতরে যারা অক্ষর ক্রম, শুধু উদ্ধৃতি
ব্যাকস্ল্যাশ সহ বর্গাকার বন্ধনী: "\[=" এবং "=\]"।
%s: অনিরাপদ রেগুলার এক্সপ্রেশনে ইভাল-গ্রুপ
(F) পার্ল একটি রেগুলার এক্সপ্রেশন কম্পাইল করার চেষ্টা করার সময় কলঙ্কিত ডেটা সনাক্ত করেছে
"(?{ ... })" শূন্য-প্রস্থের দাবী রয়েছে, যা অনিরাপদ। "(?{ কোড })" দেখুন
perlre, এবং perlsec.
%s: ইভাল-গ্রুপ অনুমোদিত নয়, পুনরায় 'ইভাল' ব্যবহার করুন
(F) একটি রেগুলার এক্সপ্রেশনে "(?{ ... })" শূন্য-প্রস্থের দাবি থাকে, কিন্তু তা
কনস্ট্রাক্ট শুধুমাত্র তখনই অনুমোদিত হয় যখন "ইউজ রি 'ইভাল'" প্র্যাগমা কার্যকর হয়। দেখুন "(?{ কোড
})" পার্লারে।
%s: ইভাল-গ্রুপ চালানোর সময় অনুমোদিত নয়
(F) পার্ল "(?{ ... })" শূন্য-প্রস্থ ধারণকারী একটি নিয়মিত অভিব্যক্তি কম্পাইল করার চেষ্টা করেছে
রান টাইমে দাবী, যেমনটি হবে যখন প্যাটার্নে ইন্টারপোলেটেড মান থাকে।
যেহেতু এটি একটি নিরাপত্তা ঝুঁকি, এটি অনুমোদিত নয়। আপনি যদি জোর করেন, আপনি এখনও করতে পারেন
এটি চালানোর সময় একটি ইন্টারপোলেটেড স্ট্রিং থেকে স্পষ্টভাবে প্যাটার্ন তৈরি করে এবং
একটি যে ব্যবহার করে eval(). পার্লারে "(?{ কোড })" দেখুন।
''কে স্পষ্ট আশীর্বাদ (প্যাকেজ প্রধান ধরে নেওয়া)
(W) আপনি একটি শূন্য দৈর্ঘ্য স্ট্রিং একটি রেফারেন্স আশীর্বাদ করছেন. এর প্রভাব রয়েছে
প্যাকেজ প্রধান রেফারেন্স আশীর্বাদ. এটি সাধারণত আপনি কি চান না.
একটি ডিফল্ট লক্ষ্য প্যাকেজ প্রদান বিবেচনা করুন, যেমন bless($ref, $p || 'MyPackage');
অবৈধ হেক্স ডিজিট উপেক্ষা করা হয়েছে
(W) আপনি হেক্সাডেসিমেলে 0 - 9 বা A - F ছাড়া অন্য একটি অক্ষর ব্যবহার করার চেষ্টা করতে পারেন
সংখ্যা হেক্সাডেসিমেল সংখ্যার ব্যাখ্যা অবৈধ হওয়ার আগেই বন্ধ হয়ে গেছে
অক্ষর।
এই ধরনের কোনো অ্যারে ক্ষেত্র নেই
(F) আপনি হ্যাশ হিসাবে একটি অ্যারে অ্যাক্সেস করার চেষ্টা করেছেন, কিন্তু ব্যবহৃত ক্ষেত্রের নাম সংজ্ঞায়িত করা হয়নি।
ইনডেক্স 0-এ হ্যাশের জন্য সমস্ত বৈধ ক্ষেত্রের নাম ম্যাপ করা উচিত যেটির জন্য অ্যারে সূচকে
হবে।
%s টাইপের পরিবর্তনশীল %s-এ এরকম কোনো ক্ষেত্র "%s" নেই
(F) আপনি একটি টাইপ করা ভেরিয়েবলের একটি ক্ষেত্র অ্যাক্সেস করার চেষ্টা করেছেন যেখানে টাইপটি সম্পর্কে জানে না
ক্ষেত্রের নাম। ক্ষেত্রের নাম টাইপ প্যাকেজে %FIELDS হ্যাশে দেখা হয়
কম্পাইল সময়ে। %FIELDS হ্যাশ সাধারণত 'ক্ষেত্র' প্রাগমা দিয়ে সেট আপ করা হয়।
হাস্যকরভাবে বড় অনুরোধের সময় স্মৃতির বাইরে
(F) আপনি 2^31+ "ছোট পরিমাণ" বাইটের বেশি বরাদ্দ করতে পারবেন না। এই ত্রুটি সবচেয়ে সম্ভবত
পার্ল প্রোগ্রামে একটি টাইপোর কারণে হতে পারে। যেমন, $arr[$time] এর পরিবর্তে $arr[time]।
পূর্ণসংখ্যা পরিসরের বাইরে পরিসীমা পুনরাবৃত্তিকারী
(F) রেঞ্জ অপারেটরের কাছে একটি (বা উভয়) সাংখ্যিক আর্গুমেন্ট ".." এর বাইরে
পরিসর যা অভ্যন্তরীণভাবে পূর্ণসংখ্যা দ্বারা প্রতিনিধিত্ব করা যেতে পারে। একটি সম্ভাব্য সমাধান হল
পার্লকে আপনার সংখ্যার আগে "0" রেখে জাদুকরী স্ট্রিং ইনক্রিমেন্ট ব্যবহার করতে বাধ্য করুন।
পদ্ধতি '%s' %s খুঁজতে গিয়ে পুনরাবৃত্ত উত্তরাধিকার শনাক্ত করা হয়েছে
(F) একটি পদ্ধতি চালু করার সময় উত্তরাধিকারের 100 টিরও বেশি স্তরের সম্মুখীন হয়েছিল৷
সম্ভবত আপনার উত্তরাধিকার অনুক্রমের একটি অনিচ্ছাকৃত লুপ নির্দেশ করে৷
রেফারেন্স পাওয়া গেছে যেখানে সম-আকারের তালিকা প্রত্যাশিত
(W) আপনি একটি একক রেফারেন্স দিয়েছেন যেখানে পার্ল একটি জোড় সংখ্যা সহ একটি তালিকা আশা করছিল
উপাদান (একটি হ্যাশ নিয়োগের জন্য)। এর মানে সাধারণত আপনি anon হ্যাশ ব্যবহার করেছেন
কনস্ট্রাক্টর যখন আপনি প্যারেন ব্যবহার করতে চান। যে কোনো ক্ষেত্রে, একটি হ্যাশের কী/মান প্রয়োজন
জোড়া.
% হ্যাশ = { এক => 1, দুই => 2, }; #ভুল
% হ্যাশ = [ qw/ an anon array / ]; #ভুল
% হ্যাশ = ( এক => 1, দুই => 2,); #ঠিক
%হ্যাশ = qw(এক 1 দুই 2); #ও ঠিক আছে
অনির্ধারিত মান টাইপগ্লোবে বরাদ্দ করা হয়েছে
(W) একটি অনির্ধারিত মান একটি টাইপগ্লোবের জন্য বরাদ্দ করা হয়েছিল, একটি la "*foo = undef"। এই করে
কিছুই না এটা সম্ভব যে আপনি সত্যিই "undef *foo" বলতে চান।
সংরক্ষিত শব্দ "%s" ব্যবহার বন্ধ করা হয়েছে
(D) নির্দেশিত বেয়ারওয়ার্ডটি একটি সংরক্ষিত শব্দ। পার্লের ভবিষ্যত সংস্করণ এটি ব্যবহার করতে পারে
একটি কীওয়ার্ড, তাই আপনি হয় স্পষ্টভাবে শব্দটি একটি পদ্ধতিতে উদ্ধৃত করা থেকে ভাল
এর ব্যবহারের প্রেক্ষাপটের জন্য উপযুক্ত, বা সম্পূর্ণ আলাদা নাম ব্যবহার করে। সতর্কবার্তা
হয় একটি "&" উপসর্গ যোগ করে, অথবা একটি ব্যবহার করে সাবরুটিন নামের জন্য দমন করা যেতে পারে
প্যাকেজ কোয়ালিফায়ার, যেমন "&our()", অথবা "Foo::our()"।
perl: সতর্কতা: লোকেল সেট করা ব্যর্থ হয়েছে।
(S) পুরো সতর্কতা বার্তাটি এরকম কিছু দেখাবে:
perl: সতর্কতা: লোকেল সেট করা ব্যর্থ হয়েছে।
perl: সতর্কতা: অনুগ্রহ করে চেক করুন যে আপনার লোকেল সেটিংস:
LC_ALL = "En_US",
ল্যাং = (আনসেট)
সমর্থিত এবং আপনার সিস্টেমে ইনস্টল করা হয়.
perl: সতর্কতা: স্ট্যান্ডার্ড লোকেলে ফিরে যাওয়া ("C")।
ঠিক কি ব্যর্থ লোকেল সেটিংস ছিল পরিবর্তিত হয়. উপরের সেটিংসে ছিল
যে LC_ALL ছিল "En_US" এবং LANG এর কোন মূল্য ছিল না। এই ত্রুটি মানে যে পার্ল
সনাক্ত করা হয়েছে যে আপনি এবং/অথবা আপনার সিস্টেম অ্যাডমিনিস্ট্রেটর তথাকথিত পরিবর্তনশীল সেট আপ করেছেন
সিস্টেম কিন্তু পার্ল সেই সেটিংস ব্যবহার করতে পারেনি। এটি সৌভাগ্যবশত মারা যাওয়া গুরুতর ছিল না:
"সি" নামে একটি "ডিফল্ট লোকেল" আছে যা পার্ল ব্যবহার করতে পারে এবং ব্যবহার করবে, স্ক্রিপ্ট হবে
চালান আপনি সত্যিই সমস্যাটি ঠিক করার আগে, তবে, আপনি একই ত্রুটি বার্তা পাবেন
প্রতিবার আপনি পার্ল চালান। সমস্যাটি কীভাবে ঠিক করবেন তা "LOCALE এ পাওয়া যাবে
সমস্যা" পার্লোকেলে।
অপ্রচলিত নিদানবিদ্যা
নারা mktemp()
(চ) দ mktemp() একটি প্রক্রিয়া করার চেষ্টা করার সময় কিছু কারণে রুটিন ব্যর্থ হয়েছে -e সুইচ।
হয়তো আপনার / tmp -র পরিবর্তে পার্টিশন পূর্ণ, বা ক্লোবারড।
কারণ সরানো হয়েছে -e অস্থায়ী ফাইল আর ব্যবহার করে না।
জন্য টেম্প ফাইল লিখতে পারবেন না -e: %s
(F) একটি প্রক্রিয়া করার চেষ্টা করার সময় কিছু কারণে লেখার রুটিন ব্যর্থ হয়েছে -e সুইচ।
হয়তো আপনার / tmp -র পরিবর্তে পার্টিশন পূর্ণ, বা ক্লোবারড।
কারণ সরানো হয়েছে -e অস্থায়ী ফাইল আর ব্যবহার করে না।
অস্থায়ী ফাইল খুলতে পারে না
(F) একটি প্রক্রিয়া করার চেষ্টা করার সময় তৈরি রুটিন কিছু কারণে ব্যর্থ হয়েছে -e সুইচ।
হয়তো আপনার / tmp -র পরিবর্তে পার্টিশন পূর্ণ, বা ক্লোবারড।
কারণ সরানো হয়েছে -e অস্থায়ী ফাইল আর ব্যবহার করে না।
regexp খুব বড়
(F) রেগুলার এক্সপ্রেশনের বর্তমান বাস্তবায়ন ঠিকানা অফসেট হিসাবে শর্টস ব্যবহার করে
একটি স্ট্রিং মধ্যে দুর্ভাগ্যবশত এর মানে হল যে যদি রেগুলার এক্সপ্রেশন কম্পাইল করে
32767 এর চেয়ে দীর্ঘ, এটি উড়িয়ে দেবে। সাধারণত যখন আপনি একটি নিয়মিত অভিব্যক্তি চান
বড়, একাধিক বিবৃতি দিয়ে এটি করার একটি ভাল উপায় আছে। perlre দেখুন.
কনফিগারেশন পরিবর্তন
আপনি "Configure -Uinstallusrbinperl" ব্যবহার করতে পারেন যার কারণে installperl ইনস্টল করা এড়িয়ে যায়
perl এছাড়াও /usr/bin/perl হিসাবে। আপনি যদি পরিবর্তন না করতে চান তবে এটি কার্যকর , / Usr / বিন কিছুর জন্য
কারণ বা অন্য কিন্তু ক্ষতিকারক কারণ অনেক স্ক্রিপ্ট /usr/bin/perl-এ পার্ল খুঁজে পেতে অনুমান করে।
onworks.net পরিষেবা ব্যবহার করে অনলাইনে perl5005delta ব্যবহার করুন
