PERL/C3/Access-Modifiers-in-PERL/Bengali

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 Access Modifiers এর টিউটোরিয়ালে আপনাদের স্বাগত।
00:07 এই টিউটোরিয়ালে নিম্ন সম্পর্কে শিখব

স্কোপ অফ ভ্যারিয়েবল

Private ভ্যারিয়েবল

Dynamically scoped ভ্যারিয়েবল

Global ভ্যারিয়েবল।

00:19 এই টিউটোরিয়ালের জন্য ব্যবহার করছি

উবুন্টু লিনাক্স 12.04 অপারেটিং সিস্টেম

Perl 5.14.2 এবং

gedit টেক্সট এডিটর।

00:32 আপনি পছন্দের যে কোনো টেক্সট এডিটর ব্যবহার করতে পারেন।
00:36 আপনার Perl প্রোগ্রামিং এর মৌলিক জ্ঞান থাকা উচিত।
00:40 না হলে স্পোকেন টিউটোরিয়াল ওয়েবসাইটে উপলব্ধ প্রাসঙ্গিক Perl টিউটোরিয়াল দেখুন।
00:47 এখন স্কোপ অফ ভ্যারিয়েবলের ভূমিকা দিয়ে শুরু করি।
00:51 ভ্যারিয়েবলের স্কোপ কোডের সেই ক্ষেত্র যেখানে ভ্যারিয়েবল অ্যাক্সেস করা যেতে পারে।
00:58 অন্য কথায়, এটি ভ্যারিয়েবলের দৃশ্যতা বোঝায়।
01:03 প্রথমে আমরা Perl এ my, local এবং our মডিফায়ার্স সম্পর্কে আলোচনা করব।
01:10 my মানে Private variables
01:13 local মানে Dynamically scoped variables
01:17 our মানে Global variables
01:20 my কীওয়ার্ডের সাথে ঘোষিত ভ্যারিয়েবল সেই ব্লকের বাইরে স্কোপ হারিয়ে দেবে যেখানে সেটি ঘোষিত হয়েছিল।
01:28 আপনি একটি ভ্যারিয়েবলে ভ্যালু না দিয়ে ঘোষিত করতে পারেন,

যেমন my $fvalue সেমিকোলন।

01:37 একটি ভ্যারিয়েবলে ভ্যালু এসাইন করেও ঘোষিত করতে পারেন যেমন
01:43 my $fValue = 1 সেমিকোলন।
01:48 my $fname = ডাবল উদ্ধৃতিতে Rahul সেমিকোলন।
01:55 একই my স্টেটমেন্টের সাথে অনেক ভ্যারিয়েবল ঘোষিত করতে সিনট্যাক্স নিম্নরূপ:
02:02 my বন্ধনী খুলুন $fname কমা $lname কমা $age বন্ধনী বন্ধ করুন সেমিকোলন।
02:12 এখন স্যাম্পল প্রোগ্রাম প্রয়োগ করে private ভ্যারিয়েবল বুঝি।
02:17 এখানে ইতিমধ্যে স্যাম্পল প্রোগ্রাম রয়েছে। এটি gedit টেক্সট এডিটরে খুলি।
02:24 টার্মিনালে খুলে লিখুন: gedit scope হাইফেন my ডট pl ampersand এবং এন্টার টিপুন।
02:34 Scope-my dot pl ফাইল এখন gedit এ খোলে।
02:39 স্ক্রিনে প্রদর্শনের মত নিম্নলিখিত কোড লিখুন। এখন কোড ব্যাখ্যা করি।
02:46 এখানে my কীওয়ার্ডের সাথে একটি private ভ্যারিয়েবল $fname ঘোষিত করেছি।
02:52 এবং এটিকে Raghu ভ্যালু এসাইন করেছি।
02:56 এই ব্লকে print স্টেটমেন্ট fname ভ্যারিয়েবল যা হল Raghu তাতে ভ্যালু প্রিন্ট করে।
03:04 পরবর্তী ব্লকে সেই private ভ্যারিয়েবল $fname কে Other ভ্যালু এসাইন করেছি।
03:11 প্রিন্ট স্টেটমেন্ট সেই নির্দিষ্ট ব্লকে Other প্রিন্ট করবে।
03:17 এই প্রোগ্রামে অন্তিম প্রিন্ট স্টেটমেন্ট কোনো আউটপুট প্রিন্ট করবে না।
03:23 এটি এইজন্য কারণ আগে নির্ধারিত ব্লকের স্কোপের বাইরে fname এ কোনো ভ্যালু এসাইন নেই।
03:32 ফাইল সংরক্ষণ করতে Ctrl+S টিপুন।
03:37 এখন প্রোগ্রাম এক্সিকিউট করি।
03:40 টার্মিনালে ফিরে গিয়ে লিখুন: perl scope হাইফেন my ডট pl এবং এন্টার টিপুন।
03:49 আউটপুট নিম্নের মত দেখায়

Block 1: Raghu

Block 2: Other

Outside Block: কোনো আউটপুট নেই।

03:59 তাই my ভ্যারিয়েবলের স্কোপ শুধুমাত্র কোডের একটি বিশেষ ব্লকে এক্সেস করা হয়।
04:06 এখন বিদ্যমান প্রোগ্রাম সামান্য পরিবর্তন করি।
04:10 এখন অন্তিম প্রিন্ট স্টেটমেন্টের আগের ব্লকের বাইরে my $fname = ডাবল উদ্ধৃতিতে John সেমিকোলন জুড়ি। পরিবর্তন সংরক্ষণ করুন।
04:23 টার্মিনালে ফিরে গিয়ে আগের মত এক্সিকিউট করি।
04:28 প্রদর্শিত আউটপুট বিশ্লেষণ করুন।
04:32 আশা করি আপনি ব্লকে এবং ব্লকের বাইরে my ভ্যারিয়েবল ব্যবহারের স্কোপ বুঝতে সক্ষম।
04:41 এরপর Perl এ dynamically scoped variable সম্পর্কে দেখবো।
04:47 Local কীওয়ার্ড global ভ্যারিয়েবলকে একটি অস্থায়ী স্কোপ দেয়।
04:52 ভ্যারিয়েবল মূল ব্লক থেকে কল হওয়া যে কোনো ফাংশনের জন্য দৃশ্যমান।
04:58 আপনি নিম্নের মত local ভ্যারিয়েবল ঘোষিত করতে পারেন:

local $fValue = 100 সেমিকোলন।

local $fname = ডাবল উদ্ধৃতিতে Rakesh সেমিকোলন।

05:13 এখন একটি স্যাম্পল প্রোগ্রাম ব্যবহার করে এটি বুঝি।
05:17 টার্মিনাল খুলে লিখুন: gedit scope হাইফেন local ডট pl ampersand এবং এন্টার টিপুন।
05:27 এটি gedit এ scope হাইফেন local ডট pl ফাইল খুলবে।
05:33 স্ক্রিনে প্রদর্শনের মত নিম্ন কোড লিখুন। এখন কোড ব্যাখ্যা করি।
05:40 এখানে প্রথম লাইনে একটি ভ্যারিয়েবল $fname ঘোষিত করেছি এবং ইনিসিয়েলাইজ করেছি।
05:47 ফাংশন Welcome() এ, একটি local ভ্যারিয়েবল সেই নাম $fname দ্বারা ঘোষিত করেছি।
05:54 ভ্যারিয়েবলের নামের আগে local কীওয়ার্ডে ধ্যান দিন
05:59 এবং এই ভ্যারিয়েবলকে Rakesh ভ্যালু এসাইন করেছি।
06:03 তাই মূলত: ফাংশন Welcome() এ, $fname একটি নতুন অস্থায়ী লোকাল ভ্যারিয়েবলের মত রূপান্তরিত হয়।

তারপর, ফাংশন Hello() কল করা হচ্ছে।

06:15 এখানে Hello() এর ফাংশন পরিভাষা রয়েছে।
06:18 প্রোগ্রামের শেষে আমরা Welcome() এবং Hello() উভয় ফাংশন কল করছি।
06:25 প্রোগ্রাম সংরক্ষণ করতে Ctrl + S টিপুন।
06:29 প্রোগ্রাম এক্সিকিউট করি।
06:31 টার্মিনালে ফিরে যান এবং লিখুন: perl scope হাইফেন local.pl এবং এন্টার টিপুন।
06:41 আউটপুট নিম্নের মত দেখায়,

Hello, Rakesh!

Hello, Welcome to Spoken tutorials!

06:48 এখন আউটপুট বুঝি।
06:51 Welcome() ফাংশন কল হলে এর ভিতরে ফাংশন Hello() local ভ্যারিয়েবল এক্সেস করে।
06:59 Welcome() এ $fname ভ্যালু Rakesh রাখে।
07:04 এরপর ফাংশন Hello() আবার ভ্যারিয়েবল $fname অ্যাক্সেস করে।
07:11 কিন্তু এইবার, এটি সেই $fname ভ্যারিয়েবল যা Welcome to spoken tutorials এ ইনিসিয়েলাইজ হয়েছে।
07:19 এটি ফাংশন Welcome() এ লোকাল ভ্যারিয়েবল $fname অ্যাক্সেস করে না।
07:25 যার মানে ব্লক Welcome() ছাড়ার পর লোকাল ভ্যারিয়েবল scope এর পুরোনো স্থিতিতে ফেরৎ নিয়ে আসে।
07:32 এরপর Perl এর গ্লোবাল ভ্যারিয়েবল সম্পর্কে শিখব।
07:38 গ্লোবাল ভ্যারিয়েবল প্রোগ্রামে সর্বত্র অ্যাক্সেস করা যেতে পারে।
07:43 গ্লোবাল ভেরিয়েবল our কীওয়ার্ডের সাথে ঘোষিত হয়।
07:47 এখানে কিছু উদাহরণ রয়েছে।

our $fvalue = 100 সেমিকোলন

our $fname =ডাবল উদ্ধৃতিতে Priya সেমিকোলন।

08:01 এখন গ্লোবাল ভ্যারিয়েবলের কার্যকর উদাহরণ দেখি।
08:06 টার্মিনালে ফিরে গিয়ে লিখুন: gedit scope হাইফেন our ডট pl ampersand এবং এন্টার টিপুন।
08:16 এটি gedit এ scope হাইফেন our ডট pl ফাইল খুলবে।
08:22 এখন সেই স্যাম্পল প্রোগ্রাম ব্যাখ্যা করি যা আমি লিখেছি।
08:27 আমি package main এবং our $i এর মত গ্লোবাল ভ্যারিয়েবল ঘোষিত করে এটিকে 100 দ্বারা ইনিসিয়েলাইজ করেছি।
08:37 package First ঘোষণায় ধ্যান দিন।
08:40 package হল কোডের সংকলন যার নিজের namespace থাকে।
08:46 Namespace প্যাকেজের মাঝে ভ্যারিয়েবল নেম কোলিজন অর্থাৎ দুর্ঘটনায় বাঁচায়।
08:51 package এবং namespace সম্পর্কে অধিক ভবিষ্যতে টিউটোরিয়ালে দেখবো।
08:56 package First এ, গ্লোবাল ভ্যারিয়েবল i ভ্যালু 10 রাখে।
09:02 package Second এ, গ্লোবাল ভ্যারিয়েবল i কে ভ্যালু 20 নির্ধারিত হয়।
09:08 মেন প্যাকেজ package First variable এবং package Second variable উভয় প্রয়োগ করে।
09:15 প্রোগ্রামে আমি সকল প্যাকেজে একই ভ্যারিয়েবল i ঘোষিত করেছি।
09:21 প্যাকেজ ভ্যারিয়েবল package name কোলন কোলন variable name দ্বারা উল্লিখিত হয়।
09:29 আমাদের উদাহরণে, এটি হল $First কোলন কোলন i, $Second কোলন কোলন i.
09:39 এখানে ফাইলে একাধিক প্যাকেজ রয়েছে এবং গ্লোবাল ভ্যারিয়েবল সকল প্যাকেজ দ্বারা এক্সেস করা হবে।
09:47 এখন ফাইলটি সংরক্ষণ এবং প্রোগ্রাম এক্সিকিউট করি।
09:51 এখন টার্মিনালে গিয়ে লিখুন: perl scope হাইফেন our ডট pl এবং এন্টার টিপুন।
09:59 টার্মিনালে আউটপুট প্রদর্শিত হয়।
10:03 ভ্যারিয়েবল i এর অনুশীলনী কিভাবে করা হয়েছে, এটি বুঝতে আপনি আউটপুট নিজে বিশ্লেষণ করুন।
10:11 এটি টিউটোরিয়ালের শেষে নিয়েই আসে। সারাংশিত করি।
10:16 এই টিউটোরিয়ালে আমরা উদাহরণ দ্বারা নিম্ন সম্পর্কে শিখেছি

স্কোপ অফ ভ্যারিয়েবল

private variables এর ঘোষণা

dynamically scoped variables এবং

global variables.

10:29 কম্পাইলেশন দ্রুত করতে লোকাল এর বদলে my ব্যবহার করার পরামর্শ দেওয়া হয়।
10:35 এখানে একটি অনুশীলনী রয়েছে।
10:37 নিম্নলিখিত অনুশীলনীর জন্য কোড লিখুন এবং এটি এক্সিকিউট করুন।
10:42 FirstModule এর মত একটি প্যাকেজ ঘোষিত করুন।
10:46 একটি ভ্যারিয়েবল $age কে our এর মত ঘোষিত করে ভ্যালু 42 নির্ধারণ করুন।
10:52 SecondModule এর মত অন্য প্যাকেজ ঘোষিত করুন।
10:56 একটি ভ্যারিয়েবল $ageword কে our এর মত ঘোষিত করে ডবল উদ্ধৃতিতে Forty-Two ভ্যালু নির্ধারণ করুন।
11:05 একটি সাবরুটিন First() ঘোষিত করুন।
11:08 সাবরুটিনে, নিম্নের মত local এবং my কীওয়ার্ডের সাথে দুটি ভ্যারিয়েবল ঘোষিত করুন।
11:16 local $age = 52 সেমিকোলন।
11:20 my $ageword = ডাবল উদ্ধৃতিতে Fifty-two সেমিকোলন।
11:27 একটি অন্য সাবরুটিন Result() কল করুন।
11:31 এই ফাংশনে $age এবং $ageword এর ভ্যালু প্রিন্ট করুন।
11:37 সাবরুটিন শেষ করুন।
11:39 সাবরুটিন Result() ঘোষিত করুন।
11:42 $age এবং $ageword এর ভ্যালু আবার প্রিন্ট করুন।
11:47 সাবরুটিন শেষ করুন।
11:49 First() ফাংশন কল করুন।
11:51 নীচের মত Package First এবং Package Second প্রিন্ট করুন।
11:57 নিম্ন লিঙ্কে উপলব্ধ ভিডিওটি প্রকল্পকে সারাংশিত করে। ভিডিওটি ডাউনলোড করে দেখুন।
12:05 আমরা কর্মশালার আয়োজন করে এবং অনলাইন পরীক্ষা পাস করলে প্রশংসাপত্র দেয়। বিস্তারিত তথ্যের জন্য আমাদের লিখুন।
12:18 স্পোকেন টিউটোরিয়াল প্রজেক্ট ভারত সরকারের MHRD এর NMEICT দ্বারা সমর্থিত। এই বিষয়ে বিস্তারিত তথ্য এই লিঙ্কে প্রাপ্তিসাধ্য।
12:31 আই আই টী বোম্বে থেকে আমি বিদায় নিচ্ছি। ধন্যবাদ।

Contributors and Content Editors

Kaushik Datta, Satarupadutta