PERL/C3/Sample-PERL-program/Malayalam

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 Sample PERL program.എന്ന Spoken Tutorial ലേക്ക് സ്വാഗതം
00:06 ഈ ടൂട്ടോറിയലിൽ നാം ഇതുവരെ പഠിച്ച എല്ലാ പ്രധാന ഭാഗങ്ങളും എങ്ങനെ ഒരു സാമ്പിൾ പ്രോഗ്രാമിൽ ഉൾപ്പെടുത്താം എന്നു പഠിക്കും
00:14 ഈ ട്യൂട്ടോറിയൽ റെക്കോർഡ് ചെയ്യാനായി ഞാൻ ഉപയോഗിക്കുന്നത് Ubuntu Linux 12.04ഓപ്പറേറ്റിംഗ് സിസ്റ്റവും Perl 5.14.2 ഉം gedit ടെക്സ്റ്റ് എഡിറ്ററും ആണ്
00:25 നിങ്ങൾക്ക് സൗകര്യപ്രദമായ ഏതെങ്കിലും text editor ഉപയോഗിക്കാവുന്നതാണ്
00:29 ഈ ട്യൂട്ടോറിയൽ ഫലപ്രദമാവണമെങ്കിൽ നിങ്ങൾക്ക് Perl പ്രോഗാമിങ്ങിൽ പ്രവൃത്തിപരിചയം ഉണ്ടായിരിക്കണം
00:34 അതില്ലെങ്കിൽ ഈ വെബ്‌സൈറ്റിൽ കൊടുത്തിട്ടുള്ള Perl സ്പോക്കൺ ട്യൂട്ടോറിയൽ പരിശോധിക്കാവുന്നതാണ്
00:39 ഈ സാമ്പിൾ Perl പ്രോഗ്രാം ഒരു പ്രത്യേക സ്ഥലപരിധിയിലുള്ള വിവിധ കാലാവസ്ഥാ പ്രവചനങ്ങൾ output ആയി തരും
00:46 weather dot pm എന്നത് ഒരു module ഫയൽ ആണ്. അതിനു സങ്കീർണ്ണമായ ഒരു data-structure ഉണ്ട്, അത് ഈ പ്രോഗ്രാമിന് ആവശ്യമായ ഡാറ്റ എടുത്തുവെക്കാൻ ഉപയോഗിക്കുന്നു
00:54 കൂടാതെ ഇതിൽ റിപ്പോർട്ട് ഉണ്ടാക്കുന്നതിന് ആവശ്യമായ ധാരാളം functions ഉം ഉണ്ട്
00:59 weather underscore report dot plഎന്ന Perl പ്രോഗ്രാം ഈ module ഫയൽ ഉപയോഗിച്ച് ആവശ്യമായ ഔട്ട്പുട്ട് നൽകുന്നു
01:08 ഇതേ കോഡ് ഫയലുകൾ ഈ വെബ്‌സൈറ്റിൽ തന്നെ ലഭ്യമാണ്
01:13 code file linkഇൽ നൽകിയിട്ടുള്ള ഫയലുകൾ ഡൌൺലോഡ് ചെയ്ത് unzip ചെയ്യുക
01:18 ഇനി നമുക്ക് Weather dot pm.എന്ന സാമ്പിൾ Perl പ്രോഗ്രാം പരിശോധിക്കാം
01:24 ഈ പ്രോഗ്രാമിലെ കോഡു ഭാഗങ്ങൾ namespace Weather എന്നതിന് കീഴിൽ ആകുന്നു
01:29 package എന്ന കീവേർഡ് ഉപയോഗിച്ചാണ് Perl പ്രോഗ്രാം namespace നടപ്പിലാക്കുന്നത്
01:34 BEGINബ്ലോക്കാണ് main പ്രോഗ്രാമിന് മുൻപേ കംപൈൽ ചെയ്ത് എക്സിക്യൂട്ട് ചെയ്യുന്നത്
01:40 ഉപയോക്താവിൻറ്റെ namespaceലേക്ക് functionsകളെയും modulesകളിലെ വേരിയബിളുകളെയും അയക്കുവാൻ Export സഹായിക്കുന്നു
01:48 exportപ്രക്രിയക്ക് ഉപയോഗിക്കുന്ന രണ്ടു പ്രധാന വേരിയബിളുകൾ ആണ് At the rate EXPORTഉം at the rate EXPORT underscore OK ഉം
01:57 At the rate EXPORT എന്നത് subroutines കളുടെ പട്ടികയും module.ലെ വേരിയബിളുകളും ഉൾകൊള്ളുന്നു
02:03 ഇവ ഉപയോക്താവിൻറ്റെ namespaceലേക്ക് അയക്കപെടും
02:07 സിംബലുകളെ ആവശ്യാനുസരണം തെരഞ്ഞെടുത്ത് അയക്കാൻ At the rate EXPORT underscore OK ഉപയോഗിക്കുന്നു
02:14 ഒരു കാലാവസ്ഥാ റിപ്പോർട്ടിനുള്ള ഡാറ്റ എടുത്തുവെയ്ക്കാനുള്ള സങ്കീർണ്ണമായ ഡാറ്റാ-സ്ട്രക്ചർസ് നിർമ്മിക്കാൻ ഞാൻ references ആണ് ഉപയോഗിച്ചത്
02:24 $weather_report എന്നത് ഒരു hash reference ആകുന്നു. അതിൽ “place” എന്നതിനും “nstate” എന്നതിനും സ്കേലാർ മൂല്യമാണ്
02:32 weekly”എന്നത് hash references ലെ hash ആകുന്നു .
02:37 ആഴ്ചയിലെ ഓരോ ദിവസത്തിനും നാല് keys ഉണ്ട് -

max underscore temp min underscore temp sunrise sunset. എന്നിവയാണ് അവ

02:48 record underscore time” എന്നത് ഒരു array reference ആകുന്നു, അതിനു രണ്ടു index വിലകളുണ്ട്.
02:54 എൻറ്റെ കയ്യിൽ വിവിധ ഓപ്ഷനുകളോടെ കാലാവസ്ഥാ റിപ്പോർട്ട് പ്രദർശിപ്പിക്കാനുള്ള കുറച്ച് subroutines ഉണ്ട്. നമുക്ക് അവയെ ഓരോന്നായി പരിശോധിക്കാം
03:01 function റിപ്പോർട്ടിൻറ്റെ header വിവരങ്ങളായ തലക്കെട്ട്, സ്ഥലം, സംസ്ഥാനം, നിലവിലുള്ള തിയ്യതി എന്നിവ പ്രിൻറ്റ് ചെയ്യും.
03:10 ഇനി നമുക്ക് അടുത്ത ഫങ്ക്ഷൻ ആയ display underscore daily underscore report. നെ പരിഗണിക്കാം
03:16 function ഇൻപുട്ടിന്‌ അനുസരിച്ചുള്ള പ്രതിദിന റിപ്പോർട്ട് പ്രിൻറ്റ് ചെയ്യും
03:22 ഒരു subroutine നിലേക്ക് അയച്ചിട്ടുള്ള പരാമീറ്ററുകൾ നമുക്ക് shift ഫങ്ക്ഷൻ ഉപയോഗിച്ച് വീണ്ടെടുക്കാനാവും
03:27 parameter ൻറ്റെ മൂല്യത്തിൻറ്റെ മുന്നിലും പിന്നിലുമുള്ള സ്പേസ് എനിക്ക് trim() ഫങ്ക്ഷൻ ഉപയോഗിച്ച് നീക്കം ചെയ്യാനാവും
03:34 trim() ഫങ്ക്ഷനുള്ള കോഡ് ഇതാണ്
03:37 Lc() ഫങ്ക്ഷൻ, നൽകിയിട്ടുള്ള ഇൻപുട്ടിൻറ്റെ ചെറിയക്ഷരങ്ങളിലുള്ള വിലയെ ഔട്ട്പുട്ട് ആയി നൽകുന്നു.
03:42 ഇത് അക്ഷരങ്ങളിലുള്ള വലുപ്പച്ചെറുപ്പങ്ങളെ അവഗണിക്കാൻ ഉപയോഗിക്കുന്നു
03:45 തന്നിട്ടുള്ള ദിവസം ഒരു പാരാമീറ്റർ ആയി പ്രോഗ്രാമിൽ നിന്നും അയക്കപെടുകയും അത് dollar week underscore day എന്ന ഒരു ലോക്കൽ വേരിയബിളായി നിര്‍ണ്ണയിക്കപ്പെടുകയും ചെയ്യുന്നു
03:55 തന്നിട്ടുള്ള പ്രത്യേക ദിവസത്തെ ഡാറ്റ പ്രിൻറ്റ് ചെയ്യുവാൻ താഴെ പറയുന്ന print statement സഹായിക്കുന്നു
04:01 $weather underscore report ലെ ഒരു വിലയെ dereference ചെയ്യാനായി arrow operator ആണ് നമ്മൾ ഉപയോഗിക്കുന്നത്
04:09 references ഉപയോഗിക്കുമ്പോൾ, നമ്മൾ dereferencing ചെയ്യുന്ന ഡാറ്റയുടെ data type മനസ്സിലാക്കണം
04:15 അത് ഒരു hash ആണെങ്കിൽ key ചുരുണ്ട ബ്രാക്കറ്റ് ഉപയോഗിച്ച് അയക്കണം
04:20 അത് ഒരു array, ആണെങ്കിൽ index value വിനോടൊപ്പം ചതുര ബ്രാക്കറ്റ് ഉപയോഗിക്കണം
04:26 Perl ലെ return ഫങ്ക്ഷൻ ഒരു വിലയെ തിരിച്ചു നൽകും
04:29 ഇത് main പ്രോഗ്രാമിലെ function ൻറ്റെ നിലവിലെ സ്ഥിതി മനസ്സിലാക്കാൻ ഉപയോഗിക്കാം
04:36 write underscore daily underscore report.ആണ് അടുത്ത function
04:40 function ഒരു ഫയലിലേക്ക് report output പ്രിൻറ്റ് ചെയ്യും
04:45 വലുതാണ് (>) ചിഹ്നത്തോടുകൂടിയ open ഫങ്ക്ഷൻ WRITE മോഡിനെ കുറിക്കുന്നു
04:50 ഫയലിൻറ്റെ പേര് ദിവസത്തിൻറ്റെ പേരിനോടൊപ്പം dot txt എന്ന എക്സ്ടെന്ഷനോടുകൂടി ഉണ്ടാക്കുന്നു
04:56 പ്രിൻറ്റ് കമാൻറ്റ് ആ പ്രേത്യേക ദിവസത്തിന് ചേർന്ന ഡാറ്റ ഫയലിലേക്ക് പ്രിൻറ്റ് ചെയ്യും
05:02 ഇങ്ങനെ ഒരാഴ്ചത്തെ റിപ്പോർട്ട് പ്രിൻറ്റ് ചെയ്യാം
05:05 hash reference ലുള്ള ഓരോ ദിവസത്തിലൂടെയും കടന്നു പോകുന്ന ഒരു foreach loop ഞാൻ പ്രഖ്യാപിച്ചിരിക്കുന്നു
05:11 hash reference നെ കുറിക്കാൻ ചുരുണ്ട ബ്രാക്കറ്റുകളും dereference നെ കുറിക്കാൻ arrow ഓപ്പറേറ്ററും ഞാൻ ഉപയോഗിച്ചിരിക്കുന്നു
05:18 hash ലെ keys കളിലൂടെ ലൂപ്പ് ചെയ്യുന്നതിനായി ഞാൻ “keys” എന്ന ഇൻ -ബിൽറ്റ് ഫങ്ക്ഷൻ ഉപയോഗിക്കുന്നു
05:23 hash ലെ ഓരോ ഘടകത്തെയും പ്രിൻറ്റ് ചെയ്യുന്നതിനായി display underscore daily underscore report function ഉപയോഗിക്കുന്നു
05:30 അടുത്തതായി module ഫയൽ Weather dot pm'' ഉപയോഗിക്കുന്ന weather underscore report dot pl എന്ന ഒരു Perl പ്രോഗ്രാം പരിശോധിക്കാം
05:40 കമ്പൈലർ ഫ്ലാഗുകളായ use strict ഉം use warnings ഉം പ്രോഗ്രാമിങ്ങിൽ സാധാരണ വരാവുന്ന പിഴവുകൾ ഒഴിവാക്കാൻ ഉപകരിക്കുന്നു.
05:48 use Weather അർദ്ധവിരാമം. ഇവിടെ Weather എന്നത് പ്രോഗ്രാമിൽ ഉപയോഗിച്ച ഒരു module ൻറ്റെ പേരാകുന്നു.
05:56 നാം നേരത്തേ കണ്ട പോലെ ഈ പ്രോഗ്രാമിന് ആവശ്യമായ ഫങ്ക്ഷനുകളെല്ലാം ഈ module ഇൽ സംഭരിച്ചിട്ടുണ്ട്
06:03 dot pm എന്ന എക്സ്ടെൻഷൻ ഇവിടെ നൽകേണ്ടതില്ല
06:08 നൽകിയിട്ടുള്ള ഓപ്ഷനുകൾക്കനുസരിച്ചുള്ള വിവിധ റിപ്പോർട്ടുകൾ ഈ പ്രോഗ്രാമിൽ എനിക്ക് പ്രിൻറ്റ് ചെയ്യാം
06:14 ഉപയോക്താവ് പ്രിൻറ്റ് ചെയ്യാനുള്ള ഏതെങ്കിലും ഒരു ഓപ്ഷൻ നൽകണം. ഒരു പ്രത്യേക ദിവസത്തെ കാലാവസ്ഥാ റിപ്പോർട്ട് ഒരു ദിവസത്തെ കാലാവസ്ഥാ റിപ്പോർട്ട് ഒരു ഫയലിലേക്ക് പ്രിൻറ്റ് ചെയ്യൽ ഒരാഴ്ചയിലെ കാലാവസ്ഥാ റിപ്പോർട്ട്
06:27 ഓപ്ഷൻ '1' ആണ് ടൈപ് ചെയ്യുന്നതെങ്കിൽ ഉപയോക്താവിനോട് ആഴ്ചയിലെ ഏതു ദിവസം എന്ന് കൂടി നല്കാൻ പറയും
06:32 diamond ഓപ്പറേറ്റർ ഉപയോഗിക്കുകയാണെങ്കിൽ അത് STDIN ആയ കീ ബോർഡിൽ നിന്നും വായിച്ചെടുക്കും
06:38 ഉദാഹരണത്തിന്, നിങ്ങൾ 'monday' എന്ന് നൽകുകയാണെങ്കിൽ അത് dollar dayoption, എന്ന local variable ലേക്ക് നിശ്ചയിക്കപ്പെടുന്നു.
06:47 അടുത്തതായി നമുക്ക് display_header() എന്നും display_daily_report(). എന്നും പേരുള്ള രണ്ടു ഫങ്ക്ഷനുകളെ വിളിക്കാം
06:56 നമ്മൾ “use Weather” സ്റ്റേറ്റ്മെൻറ്റ് ഉപയോഗിച്ച് Weather dot pm എന്ന ഫയലിലെ എല്ലാ ഫങ്ക്ഷനുകളെയും എക്സ്പോർട്ട് ചെയ്തു
07:03 അതുകൊണ്ട് നമുക്ക് പാക്കേജിനകത്തു തന്നെയുള്ള ഫങ്ക്ഷനുകളെ കുറിക്കാൻ colon colon (::)package qualifier ഉപയോഗിക്കേണ്ടിവരുന്നു
07:10 ഇനി അടുത്ത ഓപ്ഷൻ പരിശോധിക്കാം
07:13 നിങ്ങൾ ഓപ്ഷൻ '2' എന്ന് ടൈപ്പ് ചെയ്യുകയാണെങ്കിൽ അത് ആഴ്ചയിലെ ഏതു ദിവസം എന്ന് നല്കാൻ പറയും
07:19 $dayoption എന്നത് ഒരു ഇൻപുട്ട് പാരാമീറ്റർ ആയി function write underscore daily underscore report. ലേക്ക് അയക്കും
07:27 ഫങ്ക്ഷനിൽ നിന്നുള്ള return മൂല്യം dollar result എന്ന വേരിയബിളിൽ സൂക്ഷിക്കപ്പെടുന്നു
07:33 Print statement ഉപയോക്താവിനോട് ഔട്ട്പുട്ടിനായി ടെക്സ്റ്റ് ഫയൽ പരിശോധിക്കാൻ പറയും
07:38 നൽകിയിട്ടുള്ള ദിവസത്തോടൊപ്പം dot txt എന്ന പേരിൽ ഒരു ഔട്ട്പുട്ട് ഫയൽ ഉണ്ടാക്കുന്നു
07:46 ഓപ്ഷൻ '3' ടൈപ്പ് ചെയ്യുകയാണെങ്കിൽ, അത് ഒരാഴ്ചയിലെ മുഴുവൻ കാലാവസ്ഥാ റിപ്പോർട്ടും പ്രിൻറ്റ് ചെയ്യും
07:51 display underscore weekly underscore report എന്നതാണ് ഒരാഴ്ചയിലെ റിപ്പോർട്ടിൻറ്റെ function പേര്
07:57 print സ്റ്റേറ്റ്മെൻറ്റ് നിർദ്ദിഷ്ട എണ്ണത്തിലുള്ള തിരശ്ചീന രേഖകൾ വരയ്ക്കും
08:02 ഇത് പ്രിൻറ്റ് നല്ല രീതിയിൽ കാണപ്പെടാൻ സഹായിക്കുന്നു
08:06 അവസാന ഓപ്ഷൻ '4' നൽകുകയാണെങ്കിൽ പ്രോഗ്രാമിൽ നിന്നും പുറത്തു കടക്കും
08:11 നിർദ്ദേശിക്കപ്പെട്ടതല്ലാത്ത ഓപ്ഷൻ നൽകുകയാണെങ്കിൽ പ്രിൻറ്റ് സ്റ്റേറ്റ്മെൻറ്റ് “Incorrect option” എന്ന് പറയും
08:19 ഇവിടെ എക്സിറ്റ് മൂല്യം '0' ആണെങ്കിൽ പ്രോഗ്രാം വിജയകരമായി എക്സിക്യൂട്ട് ചെയ്തു എന്ന് പറയാം
08:25 എക്സിറ്റ് മൂല്യം '0' അല്ലെങ്കിൽ ഏതെങ്കിലും തരത്തിലുള്ള പിഴവ് വന്നിട്ടുണ്ടെന്ന് അനുമാനിക്കാം
08:31 നമുക്ക് പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്തു നോക്കാം
08:34 terminal ഇൽ പോയി perl weather underscore report dot pl എന്ന് ടൈപ്പ് ചെയ്തശേഷം Enter അമർത്തുക
08:41 നമുക്ക് സ്‌ക്രീനിൽ നാല് ഓപ്ഷനുകൾ കാണാൻ പറ്റും
08:45 '1 ' എന്ന് ടൈപ്പ് ചെയ്ത ശേഷം Enter. അമർത്തുക
08:48 അത് ആഴ്ചയിലെ ഏതു ദിവസം എന്ന് നല്കാൻ പറയുന്നു. ഞാൻ "monday" എന്ന് ടൈപ്പ് ചെയ്ത ശേഷം Enter അമർത്തും
08:56 function display underscore header(). ഉപയോഗിച്ച് കിട്ടിയ header output ആണിത്
09:02 ഇപ്പോൾ നമുക്ക് തിങ്കളാഴ്ചയിലെ കാലാവസ്ഥാ റിപ്പോർട്ട് കാണാൻ സാധിക്കും
09:06 ഞാൻ ഈ പ്രോഗ്രാം വീണ്ടും എക്സിക്യൂട്ട് ചെയ്ത് മറ്റു ഓപ്ഷനുകൾ കൂടി കാണിക്കാം
09:13 '2 ' എന്ന് ടൈപ്പ് ചെയ്ത ശേഷം Enter. അമർത്തുക
09:17 അത് ആഴ്ചയിലെ ഏതു ദിവസം എന്ന് നല്കാൻ പറയുന്നു. ഞാൻ "Wednesday" എന്ന് ടൈപ്പ് ചെയ്ത ശേഷം Enter അമർത്തും
09:25 നമുക്ക് "Please check the file wednesday dot txt for report output"എന്ന സന്ദേശം കാണാൻ കഴിയും
09:32 ഔട്ട്പുട്ട് ഈ ടെക്സ്റ്റ് ഫയലിൽ എഴുതിയിട്ടുണ്ട്, നമുക്ക് ഫയൽ തുറന്ന് ഉള്ളടക്കം പരിശോധിക്കാം
09:38 gedit wednesday dot txt എന്ന് ടൈപ്പ് ചെയ്ത ശേഷം Enter. അമർത്തുക
09:44 നൽകിയിട്ടുള്ള ദിവസത്തിൻറ്റെ പേരിൽ 'txt' എന്ന എക്സ്ടെൻഷനോടുകൂടി ഔട്ട്പുട്ട് ഫയൽ നിർമിച്ചിരിക്കുന്നു
09:51 നമുക്ക് ഇനി അടുത്ത ഓപ്ഷൻ പരിശോധിക്കാം
09:54 terminal ഇൽ പോയി perl weather underscore report dot pl എന്ന് ടൈപ്പ് ചെയ്തശേഷം Enter അമർത്തുക
10:00 '3 ' എന്ന് ടൈപ്പ് ചെയ്ത ശേഷം Enter. അമർത്തുക
10:04 ഇപ്പോൾ നമുക്ക് ഒരാഴ്ചയിലെ കാലാവസ്ഥാ റിപ്പോർട്ട് കാണാൻ സാധിക്കും
10:08 hash keys ഉം hash values ഉം ക്രമരഹിതമായി സൂക്ഷിച്ചിരിക്കുന്നു
10:13 അതുകൊണ്ട് പ്രദർശിപ്പിച്ചിട്ടുള്ള ഔട്ട്പുട്ട് നമ്മൾ നൽകിയ ക്രമത്തിൽ ആയിരിക്കില്ല
10:19 ഇതോടു കൂടി ഈ ടൂട്ടോറിയൽ ഉപസംഹരിക്കാം
10:24 ഈ ടൂട്ടോറിയലിൽ, നാം നേരെത്തെ പഠിച്ച പ്രധാന ഭാഗങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു സാമ്പിൾ Perl പ്രോഗ്രാം നമ്മൾ കണ്ടു
10:32 അതുപോലെയുള്ള മറ്റൊരു Perl പ്രോഗ്രാം employee underscore report.pl എന്നപേരിൽ employee salary, designation, department, leave_balance എന്നീ വിശദാംശങ്ങളോടെ ഒരു അസൈൻമെൻറ്റായി എഴുതുക
10:45 Employee ID യും Employee name ഉം ഇൻപുട്ട് ആയി നൽകുക
10:50 ആവശ്യമായ ഫങ്ക്ഷനുകളെല്ലാം moduleലെ എന്ന Employee dot pm ഫയലിൽ എഴുതുക
10:56 താഴെകാണുന്ന link ഇൽ, ഈ spoken tutorial ൻറ്റെ വീഡിയോ ഉണ്ട്, അത് ഡൌൺലോഡ് ചെയ്തു കാണുക
11:03 ഈ സ്പോക്കണ്‍ ട്യൂട്ടോറിയല്‍ പ്രോജെക്റ്റ് ടീം സ്പോക്കണ്‍ ട്യൂട്ടോറിയല്‍ ഉപയോഗിച്ച് ശില്പശാലകള്‍ നടത്തുന്നു, ഓണ്‍ലൈന്‍ പരീക്ഷ പാസ്സാകുന്നവര്‍ക്ക് സര്‍ട്ടിഫിക്കേറ്റും നല്‍കുന്നുണ്ട്. കൂടുതല്‍ വിവരങ്ങള്‍ക്ക് ഞങ്ങള്‍ക്ക് എഴുതുക
11:12 ഇത് ഇന്ത്യാ ഗവണ്‍മെന്റിന്റെ മാനവശേഷിവിഭവ വകുപ്പിന്റെ നാഷണല്‍ മിഷന്‍ ഓണ്‍ എജ്യുക്കേഷന്‍ ത്രൂ ഐ സി ടി സംരഭത്തിന്റെ പിന്തുണയോടെയാണു്‌ നടത്തുന്നതു്‌. ഈ സംരഭത്തെക്കുറിച്ചുള്ള കൂടുതല്‍ വിവരങ്ങള്‍ ഈ ലിങ്കില്‍ ലഭ്യമാണ്.
11:25 ഇതില്‍ പങ്കെടുത്ത എല്ലാവര്‍ക്കും നന്ദി പറഞ്ഞുകൊണ്ട് ഞാന്‍ പ്രജൂന വത്സലൻ വിടവാങ്ങുന്നു.

Contributors and Content Editors

Sunilk