পার্লে,। Pm (পার্ল মডিউল) এবং .pl (পার্ল স্ক্রিপ্ট) ফাইলের মধ্যে পার্থক্য কী?


88

.pm(পার্ল মডিউল) এবং .pl(পার্ল স্ক্রিপ্ট) ফাইলের মধ্যে পার্থক্য কী ?

দয়া করে আমাকে বলুন কেন আমরা 1ফাইল থেকে ফিরে আসছি । যদি 2 বা অন্য কোনও কিছু ফেরত দেয় তবে এটি কোনও ত্রুটি উত্পন্ন করছে না, তবে কেন আমরা 1পার্ল মডিউল থেকে ফিরে আসব ?


11
1কোন ব্যাপার না. এটি হতে পারে 2, এটি হতে পারে "foo", এটি হতে পারে ["a", "list"]। গুরুত্বপূর্ণ বিষয়গুলি এটি নয় 0, বা অন্য কোনও কিছু যা মিথ্যা হিসাবে মূল্যায়ন করে বা useব্যর্থ হবে।
— আমদান

.pl আসলে পার্ল গ্রন্থাগার - সি প্রোগ্রাম বা অন্যান্য ভাষায় লিখিত প্রোগ্রামগুলির মতো পার্ল স্ক্রিপ্টগুলির সমাপ্তি হয় না, অপারেটিং সিস্টেমগুলির জন্য যেমন উইন্ডোজগুলির মতো ফ্যান্টিওপেন করার প্রয়োজন হয়।
— মনিকা মনে রাখবেন

উত্তর:


78

একেবারে মূল অংশে, আপনি যে ফাইল এক্সটেনশন ব্যবহার করেন তা কীভাবে কোনও পার্থক্য করে না perl interprets those files.

However, putting modules in .pm files following a certain directory structure that follows the package name provides a convenience. So, if you have a module Example::Plot::FourD and you put it in a directory Example/Plot/FourD.pm in a path in your @INC, then use and require will do the right thing when given the package name as in use Example::Plot::FourD.

The file must return true as the last statement to indicate successful execution of any initialization code, so it's customary to end such a file with 1; unless you're sure it'll return true otherwise. But it's better just to put the 1;, in case you add more statements.

যদি EXPRএকটি খালি শব্দ হয়, requireমানক মডিউলগুলি লোড করা সহজ করার জন্য আপনার জন্য ফাইলনেমটিতে "।" "এক্সটেনশন ধরে এবং" :: "এর পরিবর্তে" / "পরিবর্তন করে। মডিউলগুলি লোড করার এই ফর্মটি আপনার নাম স্থান পরিবর্তন করার ঝুঁকিপূর্ণ নয়।

সমস্ত useকিছুই হ'ল প্রদত্ত প্যাকেজটির নামটি ফাইলের নাম খুঁজে বের করতে requireহবে , এটি একটি BEGINব্লকে রয়েছে এবং importপ্যাকেজে অনুরোধ জানায়। আপনাকে useম্যানুয়ালি এই পদক্ষেপগুলি ব্যবহার না করা থেকে বিরত করার কিছুই নেই ।

উদাহরণস্বরূপ, নীচে আমি Example::Plot::FourDএকটি ফাইল বলা প্যাকেজটি রেখেছি t.pl, এটি ফাইলের স্ক্রিপ্টে লোড করেছি s.pl।

C:\Temp> cat t.pl
package Example::Plot::FourD;

use strict; use warnings;

sub new { bless {} => shift }

sub something { print "something\n" }

"Example::Plot::FourD"

C:\Temp> cat s.pl
#!/usr/bin/perl
use strict; use warnings;

BEGIN {
    require 't.pl';
}

my $p = Example::Plot::FourD->new;
$p->something;


C:\Temp> s
something

এই উদাহরণটি দেখায় যে মডিউল ফাইলগুলি শেষ করতে 1হবে না, কোনও সত্য মানই করবে।


-2

এ .পিএল একটি একক লিপি।

। Pm ( পার্ল মডিউল ) এ আপনার ফাংশন রয়েছে যা আপনি অন্যান্য পার্ল স্ক্রিপ্ট থেকে ব্যবহার করতে পারেন:

পার্ল মডিউলটি পার্ল কোডের একটি স্ব-অন্তর্ভুক্ত অংশ যা পার্ল প্রোগ্রাম বা অন্যান্য পার্ল মডিউল দ্বারা ব্যবহার করা যেতে পারে। এটি সি লিংক লাইব্রেরি, বা একটি সি ++ শ্রেণীর মত ধারণাগত similar


4
"এ .পিএল একটি একক লিপি।" সত্য না. এটি কেবল ভাঙ্গা অপারেটিং সিস্টেমগুলিতেই আপনাকে একটি .pl এক্সটেনশন দিয়ে পার্ল প্রোগ্রামগুলি সনাক্ত করতে হবে। এবং মূলত .pl একটি "পার্ল লাইব্রেরি" নির্দেশ করেছে - বাহ্যিক সাবরুটাইনগুলি যা আপনি "প্রয়োজনীয়" বা "কর" কমান্ড দিয়ে লোড করেছেন।
— ডেভ ক্রস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.