മുത്ത് നാവ്. സ്കെയിലർ, വെക്റ്റർ തരങ്ങളുടെ വേരിയബിളുകൾക്കുള്ള സന്ദർഭത്തിന്റെ പങ്ക്. ഡാറ്റ ബ്ലോക്കുകൾ വായിക്കുകയും എഴുതുകയും ചെയ്യുന്നു

1987-ൽ ലാറി വാൾ ഒരു സിസ്റ്റം പ്രോഗ്രാമറായി ജോലി ചെയ്യുമ്പോഴാണ് പേൾ പ്രോഗ്രാമിംഗ് ഭാഷ സൃഷ്ടിച്ചത്. അമേരിക്കൻ കമ്പനിയൂണിസിസ്. ഒരു പുതിയ പ്രോഗ്രാമിംഗ് ഭാഷ വികസിപ്പിക്കുന്നതിൽ ലാറിയുടെ ലക്ഷ്യങ്ങൾ അതിന്റെ പേരിൽ പ്രതിഫലിക്കുന്നു - PERL, അത് പിന്നീട് പ്രാക്ടിക്കൽ എക്‌സ്‌ട്രാക്ഷനും റിപ്പോർട്ട് ലാംഗ്വേജും ആയി നിലകൊള്ളുന്നു, അതായത്, "ഡാറ്റ' എക്‌സ്‌ട്രാക്റ്റുചെയ്യുന്നതിനും 'റിപ്പോർട്ടുകൾ സൃഷ്ടിക്കുന്നതിനുമുള്ള ഒരു പ്രായോഗിക ഭാഷ."

പേളിന്റെ ഉത്ഭവത്തെക്കുറിച്ചുള്ള ഐതിഹ്യങ്ങളിലൊന്ന് പറയുന്നത്, അക്കാലത്ത് ആ പേരിൽ ഒരു ഭാഷ ഉണ്ടായിരുന്നു, അതിനാൽ ഉച്ചാരണം മാറ്റാതെ ലാറി പേര് ഒരു അക്ഷരത്തിൽ ചുരുക്കി. വിരോധാഭാസമെന്നു പറയട്ടെ, ഇന്ന് ചരിത്രകാരന്മാരല്ലാതെ മറ്റാരും ആ ഭാഷ ഓർക്കുന്നില്ല, പക്ഷേ പേൾ ലോകമെമ്പാടും അറിയപ്പെടുന്നു.

എന്നിരുന്നാലും, മറ്റൊരു പതിപ്പ് അനുസരിച്ച്, ലാറി താൻ സൃഷ്ടിച്ച ഭാഷയ്ക്ക് തന്റെ പ്രതിശ്രുതവധുവിന്റെ പേരിട്ടു.


ലാറി വാൾ

Ada, Basic, Fortran, Lisp, Pascal എന്നീ ഭാഷകളും തീർച്ചയായും C ഭാഷയും പേളിന്റെ വികാസത്തെ സ്വാധീനിച്ചു. കമ്പ്യൂട്ടർ സയൻസ്: നടപടിക്രമം, മോഡുലാർ, ഫങ്ഷണൽ, ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ്, മാക്രോ ടെക്സ്റ്റ് പ്രോസസ്സിംഗ്, കൂടാതെ - Unix OS-ന്റെ സംസ്കാരം, അതിന്റെ സമ്പന്നമായ കമാൻഡുകളും യൂട്ടിലിറ്റികളും, നന്നായി ചിന്തിക്കുന്ന ആർക്കിടെക്ചറും ഡാറ്റാ അവതരണത്തിനുള്ള ഏകീകൃത സമീപനവും.

Unix ലെഗസി

ഇത് വികസിപ്പിച്ച യുണിക്സ് പരിതസ്ഥിതി പേൾ ഭാഷയുടെ വികാസത്തിൽ നിർണ്ണായക സ്വാധീനം ചെലുത്തി. തുടക്കത്തിൽ തന്നെ, ഈ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഒരു ചെറിയ കൂട്ടം പ്രോഗ്രാമർമാർ സ്വയം സൃഷ്ടിച്ചതാണ്. അതിനാൽ, അതിൽ ഉൾച്ചേർത്ത തത്ത്വങ്ങൾ മനുഷ്യരുടെ ദൈനംദിന ഉപയോഗത്തിന്റെ സൗകര്യത്തെ കേന്ദ്രീകരിച്ചാണ്: എല്ലാം കഴിയുന്നത്ര പ്രവർത്തനക്ഷമമായും ഹ്രസ്വമായും ഏകതാനമായും ചെയ്തു. ഉദാഹരണത്തിന്, മിക്ക സിസ്റ്റം ക്രമീകരണങ്ങളും പ്ലെയിൻ ടെക്സ്റ്റ് ഫോമിൽ സംഭരിച്ചിരിക്കുന്നതിനാൽ, ലളിതമായ ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് സായുധരായ ഒരാൾക്ക് അവ വായിക്കാനും ശരിയാക്കാനും കഴിയും.

Unix ഓപ്പറേറ്റിംഗ് സിസ്റ്റവുമായി പരിചയമുള്ളവർക്ക്, ഈ മെറ്റീരിയൽ പുതിയതായിരിക്കില്ല. എന്നാൽ പല MS-DOS, Windows പ്രോഗ്രാമർമാർക്കും, Unix ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ നിന്ന് ഉത്ഭവിക്കുകയും വികസിക്കുകയും ചെയ്ത സോഫ്റ്റ്‌വെയർ ടൂൾസ് അധിഷ്ഠിത പ്രോഗ്രാമിംഗിന്റെ തത്വങ്ങൾ പരിചയപ്പെടേണ്ടത് പ്രധാനമാണ്. അവരെക്കുറിച്ച് അവർ ഒരു അത്ഭുതകരമായ പുസ്തകം എഴുതി പ്രശസ്ത പ്രോഗ്രാമർമാർബ്രയാൻ ഡബ്ല്യു കെർനിഗാനും ഫിലിപ്പ് പ്ലഗറും. ഈ സമീപനത്തിന്റെ പ്രധാന പോയിന്റുകൾ ഇതാ.

ഒരു പ്രത്യേക പ്രശ്നം പരിഹരിക്കുന്നതിന്, ചെറിയ പ്രോഗ്രാമുകൾ വികസിപ്പിച്ചെടുക്കുന്നു, അവയിൽ ഓരോന്നും പരിഹരിക്കപ്പെടുന്ന പ്രശ്നത്തിന്റെ ഒരു പ്രവർത്തനം നിർവ്വഹിക്കുന്നു.

ഓരോന്നിൽ നിന്നുമുള്ള ഡാറ്റ തുടർച്ചയായി പ്രോസസ്സ് ചെയ്യുന്നതിലൂടെ ചെറിയ പ്രോഗ്രാമുകളുടെ ഇടപെടൽ വഴി പ്രശ്നം പരിഹരിക്കപ്പെടുന്നു.

ഈ ചെറിയ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുമ്പോൾ, നിങ്ങൾ അവയുടെ പരമാവധി സ്വതന്ത്ര ഉപയോഗത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കണം, അതുവഴി മറ്റ് പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ അവ ഉപയോഗിക്കാനാകും. അങ്ങനെ, കൂടുതൽ സാർവത്രിക ഉപയോഗത്തിനായി ഉപകരണങ്ങൾ (ഐഎസ്) ക്രമേണ സൃഷ്ടിക്കപ്പെടുന്നു.

ഡാറ്റയുടെ ഒരു സ്ട്രീം വായിക്കുന്ന ഫിൽട്ടർ പ്രോഗ്രാമുകളായാണ് മിക്ക ടൂളുകളും വികസിപ്പിച്ചിരിക്കുന്നത് സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്കൂടാതെ പ്രോസസ്സ് ചെയ്ത ഡാറ്റ സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലേക്ക് എഴുതുന്നു.

ആപ്ലിക്കേഷനുകളിലേക്ക് ടൂളുകളുടെ സംയോജനം ഉപയോഗിച്ചാണ് ചെയ്യുന്നത് കമാൻഡ് ഭാഷ OS: I/O റീഡയറക്ഷൻ, സോഫ്റ്റ്‌വെയർ പൈപ്പ് ലൈനുകളുടെ സൃഷ്ടി (ഒരു പ്രോഗ്രാമിന്റെ ഔട്ട്‌പുട്ട് സ്ട്രീം മറ്റൊന്നിന്റെ ഇൻപുട്ടിലേക്ക് നയിക്കുന്നു).

ടൂളുകൾക്കായി സംഭരിച്ചിരിക്കുന്ന ഡാറ്റയുടെ പ്രധാന ഫോർമാറ്റ് ടെക്സ്റ്റ് ഫയലുകളാണ്, അവയ്ക്ക് ഒരുപോലെ അനുയോജ്യമാണ് സോഫ്റ്റ്വെയർ പ്രോസസ്സിംഗ്ഒരു വ്യക്തിയാൽ അവ വായിക്കുകയും ചെയ്യുന്നു.

വേണ്ടി കാര്യക്ഷമമായ പ്രോസസ്സിംഗ്മോശമായ ഘടന ടെക്സ്റ്റ് വിവരങ്ങൾപ്രയോഗിക്കുക പതിവ് ഭാവങ്ങൾ.

അനുകൂല ഘടകങ്ങൾ

യൂസ്‌നെറ്റ് ഉപയോക്താക്കൾക്കിടയിൽ ഭാഷ അതിവേഗം വ്യാപിച്ചു. പേൾ സൃഷ്ടിച്ച യുണിക്സ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന് (OS) ഇതിനകം ടെക്സ്റ്റ് വിവരങ്ങൾ (awk, csh, grep, sed എന്നിവയും മറ്റുള്ളവയും) പ്രോസസ്സ് ചെയ്യുന്നതിനുള്ള നിരവധി വൈവിധ്യമാർന്ന ടൂളുകൾ ഉണ്ടായിരുന്നിട്ടും, പുതിയ ഭാഷ ധാരാളം സിസ്റ്റങ്ങളുമായി പ്രണയത്തിലായി. അഡ്മിനിസ്ട്രേറ്റർമാരും പ്രോഗ്രാമർമാരും. ഇത് പഠിക്കാനും ഉപയോഗിക്കാനും എളുപ്പമായിരുന്നു: വാക്യഘടന സിക്ക് സമാനമാണ്, പേൾ പ്രോഗ്രാമുകൾ ആദ്യം കംപൈൽ ചെയ്യേണ്ടതില്ല, കൂടാതെ സോഴ്സ് കോഡ് പരിഷ്കരിക്കാൻ എളുപ്പമായിരുന്നു. ഏറ്റവും പ്രധാനമായി, ഇത് ശരിക്കും വളരെ പ്രായോഗിക ഭാഷയായിരുന്നു: അതിന്റെ സഹായത്തോടെ, മിക്ക ദൈനംദിന പ്രശ്നങ്ങളും എളുപ്പത്തിൽ പരിഹരിക്കപ്പെട്ടു - ലളിതവും സങ്കീർണ്ണവും വരെ.

പേൾ ഭാഷ സജീവമായി ഉപയോഗിക്കുന്നു, പ്രോഗ്രാമർമാർ വിവിധ രാജ്യങ്ങൾപുതിയ സവിശേഷതകൾ ചേർക്കുന്നതിനോ നിലവിലുള്ളവ മെച്ചപ്പെടുത്തുന്നതിനോ ലാറി വാൾ നിർദ്ദേശങ്ങൾ അയച്ചു. ക്രമേണ, യുണിക്സ് വേഡ് പ്രോസസ്സിംഗ് ടൂളിൽ നിന്ന് ശക്തമായ ഒരു പൊതു-ഉദ്ദേശ്യ പ്രോഗ്രാമിംഗ് സിസ്റ്റമായി പേൾ പരിണമിച്ചു. 1990-കളുടെ മധ്യത്തിൽ, ഇന്റർനെറ്റ് വികസിച്ചപ്പോൾ, ഡൈനാമിക് വെബ്‌സൈറ്റുകളും ഇന്റർനെറ്റ് പ്രോഗ്രാമിംഗും സൃഷ്ടിക്കുന്നതിനുള്ള വെബ്‌മാസ്റ്റർമാരുടെ പ്രിയപ്പെട്ട ഉപകരണമായി പേൾ മാറി.

ശക്തമായ ബിൽറ്റ്-ഇൻ ടെക്സ്റ്റ് പ്രോസസ്സിംഗ് കഴിവുകൾ കാരണം, HTML, XML ഫോർമാറ്റുകളിൽ വിവരങ്ങൾ പ്രോസസ്സ് ചെയ്യുന്നതിന് പേൾ വ്യാപകമായി ഉപയോഗിക്കുന്നു.

ഏതൊരു Unix OS പാക്കേജിന്റെയും (ഉദാഹരണത്തിന്, FreeBSD, Linux അല്ലെങ്കിൽ Solaris) Perl ഒരു അനിവാര്യ ഘടകമായി മാറിയിരിക്കുന്നു. കൂടാതെ, ഇന്നുവരെ, മിക്കവാറും എല്ലാ ആധുനിക ഹാർഡ്‌വെയർ പ്ലാറ്റ്‌ഫോമുകൾക്കും (സൂപ്പർ കമ്പ്യൂട്ടറുകൾ, RISC, Macintosh, PC, ഹാൻഡ്‌ഹെൽഡ് കമ്പ്യൂട്ടറുകൾ) ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കും (AIX, Linux, MacOS, MS-DOS, NetWare, OS/2, QNX, Solaris) പേൾ നടപ്പിലാക്കിയിട്ടുണ്ട്. , വിൻഡോസ്, വിഎംഎസ് തുടങ്ങിയവ).

ജനപ്രിയമായ പേൾ പ്രോഗ്രാമുകൾ ഒന്നിൽ നിന്ന് എളുപ്പത്തിൽ പോർട്ട് ചെയ്യുന്നത് ഇത് സാധ്യമാക്കുന്നു പ്രവർത്തന അന്തരീക്ഷംമറ്റൊരാളോട്.

ഗ്നു ജനറൽ പബ്ലിക് ലൈസൻസ് (ജിപിഎൽ) അല്ലെങ്കിൽ ആർട്ടിസ്റ്റിക് ലൈസൻസ് - നിങ്ങളുടെ ഇഷ്ടാനുസരണം ഒരു ലൈസൻസിന്റെ നിബന്ധനകൾക്ക് കീഴിൽ ഇത് സൗജന്യമായി വിതരണം ചെയ്യുന്നതാണ് ഇതിന്റെ വ്യാപകമായ ഉപയോഗത്തിന് സഹായകമായത് എന്നതിൽ സംശയമില്ല. എന്നാൽ പ്രധാന കാര്യം, പ്രൊഫഷണലുകളെയും അനുഭവപരിചയമില്ലാത്ത പ്രോഗ്രാമർമാരെയും വിവിധ സിസ്റ്റങ്ങളുടെയും ആപ്ലിക്കേഷന്റെയും പ്രശ്നങ്ങൾ വേഗത്തിൽ പരിഹരിക്കേണ്ടിവരുമ്പോൾ അവരെ സഹായിക്കാനുള്ള എല്ലാ ഉപകരണങ്ങളും ഇതിലുണ്ട് എന്നതാണ് - ലളിതം മുതൽ സങ്കീർണ്ണമായത് വരെ. തൽഫലമായി, പ്രസ്ഥാനത്തിന്റെ ഏറ്റവും വിജയകരമായ പദ്ധതികളിലൊന്നായി പേൾ മാറി. തുറന്ന ഉറവിടം(ഓപ്പൺ സോഴ്സ്) - Apache, Linux, PHP, Python എന്നിവയ്ക്കൊപ്പം.

അസാധാരണമായ പ്രോഗ്രാമിംഗ് ഭാഷ

Perl-ന്റെ ഡിസൈൻ തത്വങ്ങൾ മുമ്പ് പ്രോഗ്രാമിംഗിൽ ഉപയോഗിച്ചതിൽ നിന്ന് വളരെ വ്യത്യസ്തമാണ്. ഭാഷയുടെ നൂതന സ്വഭാവം ബന്ധപ്പെട്ടിരിക്കുന്നു അതുല്യമായ സവിശേഷതകൾലാറി വാൾ എന്ന എഴുത്തുകാരന്റെ വ്യക്തിത്വവും അദ്ദേഹത്തിന്റെ വ്യത്യസ്ത താൽപ്പര്യങ്ങളും.

യൂണിവേഴ്സിറ്റിയിൽ പഠിക്കുമ്പോൾ, ലാറി വാൾ ഭാഷാപരമായ വിദ്യാഭ്യാസം നേടി. കൂടാതെ, അദ്ദേഹം പ്രോഗ്രാമിംഗിൽ ഏർപ്പെടുകയും സർവകലാശാലയിൽ ജോലി ചെയ്യുകയും ചെയ്തു കമ്പ്യൂട്ടർ കേന്ദ്രം.

സ്വാഭാവിക ഭാഷയുടെ സവിശേഷതകളും തത്വങ്ങളും കണക്കിലെടുക്കുന്ന ഒരു ഭാഷ സൃഷ്ടിക്കാൻ അദ്ദേഹത്തിന് കഴിഞ്ഞു എന്നതാണ് പേളിന്റെ രചയിതാവെന്ന നിലയിൽ ലാറിയുടെ പ്രധാന യോഗ്യത: ഘടനകളുടെ സാഹചര്യപരമായ പോളിസെമി, ന്യായമായ ആവർത്തനം (ഈ ശൈലിയിലുള്ള വൈവിധ്യം കാരണം), വിവിധ തലങ്ങളിലേക്ക് പരമാവധി പൊരുത്തപ്പെടുത്തൽ. നേറ്റീവ് സ്പീക്കറുകളെക്കുറിച്ചുള്ള അറിവ്, വാക്യഘടനാ മാർഗങ്ങളുടെ വഴക്കവും ആവിഷ്‌കാരവും. ഇതെല്ലാം ഈ ഭാഷയിലെ "എഴുത്ത്" എന്ന പ്രക്രിയയ്ക്ക് ഒരു പ്രത്യേക സർഗ്ഗാത്മകത നൽകുന്നു.

പേൾ ഭാഷയെക്കുറിച്ച് എഴുതുന്നവർ അറിയാതെ "ഇഡിയം", "മെറ്റഫോർ", "പര്യായപദം", "സന്ദർഭം" മുതലായവ ഉപയോഗിക്കുന്നു, സാധാരണയായി സ്വാഭാവിക ഭാഷകളിൽ പ്രയോഗിക്കുന്നു. ലാറി വാൾ തന്നെ, പേൾ ഭാഷയെ വിവരിക്കുമ്പോൾ, വ്യാപകമായി ഉപയോഗിക്കുന്നു ഭാഷാപരമായ നിബന്ധനകൾ: നാമം, ക്രിയ, വാക്യം, ഏകവചനവും ബഹുവചനവും, സർവ്വനാമം.

മികച്ച ഭാഷാ പണ്ഡിതൻ ബി.എൽ. വോർഫ് അഭിപ്രായപ്പെട്ടു, "ഭാഷ നമ്മുടെ ചിന്താരീതിയെ രൂപപ്പെടുത്തുകയും നമുക്ക് എന്ത് ചിന്തിക്കാൻ കഴിയുമെന്ന് നിർണ്ണയിക്കുകയും ചെയ്യുന്നു." "പേൾസ് ഓഫ് പ്രോഗ്രാമർമാരുടെ സർഗ്ഗാത്മകത" എന്ന പുസ്തകത്തിൽ ജെ ബെന്റ്ലിയും ഇതേ ആശയം സ്ഥിരീകരിക്കുന്നു, എപിഎൽ പ്രോഗ്രാമിംഗ് ഭാഷയുടെ സവിശേഷതകളാണ് അറേകളിലെ ഒരു പ്രശ്നത്തിന് യഥാർത്ഥ പരിഹാരം കണ്ടെത്തുന്നതിന് ഡെവലപ്പറെ പ്രേരിപ്പിച്ച ഒരു കേസ് വിവരിക്കുന്നത്. ഈ അർത്ഥത്തിൽ, പ്രോഗ്രാമറുടെ പദ്ധതികൾ സാക്ഷാത്കരിക്കുന്നതിനുള്ള ഒരു ഭാഷ എന്ന നിലയിൽ പേൾ, ഡവലപ്പറുടെ ഭാവനയെ വളച്ചൊടിക്കുന്നില്ല, അദ്ദേഹത്തിന് പരമാവധി ആവിഷ്കാര സ്വാതന്ത്ര്യം നൽകുന്നു, ചിലപ്പോൾ ആവശ്യപ്പെടുന്നു. നിലവാരമില്ലാത്ത പരിഹാരങ്ങൾ.

ഭാഷയുടെ പോരായ്മകളായി ഇനിപ്പറയുന്നവ പരാമർശിക്കപ്പെടുന്നു:

പേളിന്റെ ഭാഷാ തത്വങ്ങൾ

മനുഷ്യ ഭാഷകൾ പ്രകടിപ്പിക്കാൻ പരിമിതമായ ഒരു കൂട്ടം ഘടനകൾ ഉപയോഗിക്കുന്നു വ്യത്യസ്ത അർത്ഥങ്ങൾവ്യത്യസ്ത സന്ദർഭങ്ങളിൽ അവയുടെ പുനരുപയോഗവും. ഈ തത്വത്തിന് അനുസൃതമായി, പേളിൽ ഒരേ ഭാഷാ നിർമ്മിതികൾക്ക് വ്യത്യസ്ത അർത്ഥങ്ങളുണ്ട്, കൂടാതെ അവയുടെ അവ്യക്തമായ ധാരണ നിർണ്ണയിക്കുന്നത് ഉപയോഗത്തിന്റെ സന്ദർഭമാണ്.

സന്ദർഭത്തിന്റെ തത്വം മുമ്പത്തേതുമായി അടുത്ത ബന്ധമുള്ളതാണ്. ഒരു പദപ്രയോഗത്തിന്റെ അർത്ഥം ശരിയായി വ്യാഖ്യാനിക്കാൻ സ്വാഭാവിക ഭാഷകളിൽ സന്ദർഭം ഉപയോഗിക്കുന്നു. ഈ തത്ത്വം പിന്തുടർന്ന്, ഉദാഹരണത്തിന്, Perl-ൽ, കോളിന്റെ സന്ദർഭത്തിനനുസരിച്ച് പല ഫംഗ്‌ഷനുകളും ഒരൊറ്റ മൂല്യമോ ലിസ്‌റ്റോ നൽകുന്നു: എക്‌സ്‌പ്രഷൻ വാക്യഘടനയ്‌ക്ക് ഒരൊറ്റ മൂല്യമോ ഒന്നിലധികം മൂല്യമോ ആവശ്യമുണ്ടോ എന്ന്.

സ്വാഭാവിക ഭാഷകളിലെ സെമാന്റിക് അടിവരയിടുന്നതിനുള്ള തത്വം പ്രസ്താവനയുടെ പ്രധാന ഭാഗത്തേക്ക് ശ്രദ്ധ ആകർഷിക്കാൻ സഹായിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ഹൈലൈറ്റ് ചെയ്ത ഭാഗം സാധാരണയായി വാക്യത്തിന്റെ തുടക്കത്തിൽ സ്ഥാപിക്കുന്നു. പേളിൽ, ഒരു മോഡിഫയർ ഉപയോഗിച്ച് ലളിതമായ ഒരു വാക്യം തിരഞ്ഞെടുത്ത് അർത്ഥം ഊന്നിപ്പറയുന്നതിന് പ്രോഗ്രാമർക്ക് ഈ തത്ത്വം ഉപയോഗിക്കാം. സോപാധിക നിർമ്മാണം, ഉദാഹരണത്തിന്:

$ഞങ്ങൾ->ചെയ്യും($ഇത്)) $നിങ്ങൾക്ക്->ആവശ്യമെങ്കിൽ($ഇത്); # അഥവാ
$you->ആവശ്യമെങ്കിൽ($it) ($ഞങ്ങൾ->ചെയ്യും($it))

സ്വാഭാവിക ഭാഷകളിലെ സ്വാതന്ത്ര്യത്തിന്റെ തത്വം ഒരേ ചിന്ത പ്രകടിപ്പിക്കുന്നതിന് എല്ലായ്പ്പോഴും നിരവധി ഓപ്ഷനുകൾ ഉണ്ടെന്ന് സൂചിപ്പിക്കുന്നു. സ്വാഭാവിക ഭാഷകളിലെന്നപോലെ, ഭാഷയുടെ വ്യത്യസ്‌ത ആവിഷ്‌കാര മാർഗങ്ങൾ ഉപയോഗിച്ച്, പേളിലും ഒരേ ഫലം പല തരത്തിൽ നേടാനാകും. ഇതാണ് TIMTOWTDI തത്വം - ചുരുക്കെഴുത്ത് "ടിം ടോഡി" എന്ന് വായിക്കുകയും "അത് ചെയ്യാൻ ഒന്നിലധികം വഴികളുണ്ട്" എന്നതിന്റെ അർത്ഥം: "എന്തെങ്കിലും ചെയ്യാൻ ഒന്നിലധികം വഴികളുണ്ട്." അതിന് അനുസൃതമായി, ഓരോ ഡവലപ്പറും തനിക്ക് ഏറ്റവും അനുയോജ്യമായ ഭാഷാ രൂപകൽപ്പനയുടെ പതിപ്പ് തിരഞ്ഞെടുക്കുന്നു പ്രത്യേക സാഹചര്യം, അവന്റെ ശൈലി അല്ലെങ്കിൽ ഭാഷാ വൈദഗ്ധ്യത്തിന്റെ നിലവാരവുമായി കൂടുതൽ സ്ഥിരത പുലർത്തുന്നു.

ഈ സമീപനം പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ കർശനമായ ഔപചാരിക വീക്ഷണത്തിന് തികച്ചും വിപരീതമാണ്, വികസനത്തിന്റെ പ്രധാന ലക്ഷ്യങ്ങൾ ഭാഷാ നിർമ്മാണങ്ങളുടെ അവ്യക്തതയും ചെറുതാക്കലും ആണ്. എന്നാൽ മനഃശാസ്ത്രത്തിന്റെയും ഭാഷാപരമായ ചിന്തയുടെയും വീക്ഷണകോണിൽ നിന്ന്, "ഭാഷാപരമായ സമീപനം" പല തരത്തിൽ കൂടുതൽ ഉൽപ്പാദനക്ഷമവും വിരോധാഭാസവുമാണ്! എല്ലാത്തിനുമുപരി, ഇത് സ്വാഭാവിക ഭാഷ ഉപയോഗിക്കുന്നതിൽ മനുഷ്യന്റെ അനുഭവം വരച്ചുകൊണ്ട് സർഗ്ഗാത്മകതയെ ഉത്തേജിപ്പിക്കുന്നു - കൂടാതെ പേളിൽ പ്രോഗ്രാമുകൾ എഴുതുന്നത് രസകരവും രസകരവുമാണ്. അതുകൊണ്ടായിരിക്കാം പേൾ പ്രോഗ്രാമർമാർ "ഫൺ" എന്ന വാക്ക് വളരെയധികം ഇഷ്ടപ്പെടുന്നത്.

ആദ്യ പതിപ്പുകളും "ഒട്ടക പുസ്തകവും"

1987-ൽ യൂണിസിസിൽ പ്രോഗ്രാമറായി ജോലി ചെയ്യുമ്പോഴാണ് ലാറി വാൾ പേൾ വികസിപ്പിക്കാൻ തുടങ്ങിയത്. പതിപ്പ് 1.0 പുറത്തിറങ്ങി, 1987 ഡിസംബർ 18-ന് awk, sed എന്നിവയ്‌ക്കുള്ള "പകരം" ആയി പ്രഖ്യാപിച്ചു.

1988-ലാണ് പേൾ 2 പുറത്തിറങ്ങിയത്. പുനർരൂപകൽപ്പന ചെയ്ത റെഗുലർ എക്സ്പ്രഷൻ മെക്കാനിസമായിരുന്നു അതിലെ പ്രധാന കണ്ടുപിടുത്തം.

1989-ൽ പുറത്തിറങ്ങിയ പേൾ 3, ബൈനറി ഡാറ്റ സ്ട്രീമുകൾ പ്രോസസ്സ് ചെയ്യാനുള്ള കഴിവ് നേടി.

തുടക്കത്തിൽ, ഒറ്റ (വലിയ നീളമുള്ള) മാൻ പേജ് മാത്രമായിരുന്നു പേളിനുള്ള ഏക ഡോക്യുമെന്റേഷൻ. 1991-ൽ, പ്രോഗ്രാമിംഗ് പേൾ (കവറിലെ ചിത്രം കാരണം ഒട്ടക പുസ്തകം എന്ന് പല പ്രോഗ്രാമർമാർക്കും അറിയപ്പെടുന്നു) എന്ന പുസ്തകം പുറത്തിറങ്ങി, അത് യഥാർത്ഥ ഭാഷാ നിലവാരമായി മാറി.

അതേ സമയം, ഭാഷാ പതിപ്പ് പതിപ്പ് 4 ലേക്ക് "അപ്ഗ്രേഡ്" ചെയ്തു - കാര്യമായ മാറ്റങ്ങൾ സൂചിപ്പിക്കാൻ ഇത്രയധികം അല്ല, പക്ഷേ ഭാഷയുടെ ഈ പതിപ്പ് പുസ്തകത്തിൽ രേഖപ്പെടുത്തിയിട്ടുണ്ടെന്ന് സൂചിപ്പിക്കാൻ. 1993-ൽ പേൾ 4.036-ൽ അവസാനിച്ച നിരവധി റിലീസുകളിലൂടെ പേൾ 4 കടന്നുപോയി.

പേൾ 5

1994 ലാണ് പേൾ 5 ന്റെ വികസനം ആരംഭിച്ചത്. അതേ സമയം, വിവിധ പ്ലാറ്റ്ഫോമുകളിലേക്ക് Perl 5 പോർട്ട് ചെയ്യുന്നതിനുള്ള പ്രവർത്തനങ്ങൾ ഏകോപിപ്പിക്കുന്നതിനായി perl5-porters മെയിലിംഗ് ലിസ്റ്റ് സൃഷ്ടിച്ചു. Perl 5 വികസനം, പരിപാലനം, പോർട്ടിംഗ് എന്നിവയ്ക്കുള്ള പ്രാഥമിക ഫോറമായി ഇത് തുടരുന്നു.

1994 ഒക്ടോബർ 17-ന് പേൾ 5.000 പുറത്തിറങ്ങി. പൂർണ്ണമായും മാറ്റിയെഴുതിയ ഒരു ഇന്റർപ്രെറ്ററും ഒബ്‌ജക്‌റ്റുകൾ, റഫറൻസുകൾ, ലോക്കൽ വേരിയബിളുകൾ (എന്റെ $var_name), മൊഡ്യൂളുകൾ തുടങ്ങിയ നിരവധി പുതിയ ഭാഷാ സവിശേഷതകളും ഇതിൽ ഉൾപ്പെടുന്നു. മൊഡ്യൂളുകൾ ഒരു പ്രത്യേക പ്രധാന ഭാഗമായിരുന്നു, കാരണം അവ വ്യാഖ്യാതാവിനെ പരിഷ്കരിക്കാതെ തന്നെ ഭാഷ വിപുലീകരിക്കുന്നതിനുള്ള ഒരു സംവിധാനം നൽകി. ഇത് വ്യാഖ്യാതാവിനെ സ്ഥിരപ്പെടുത്താൻ അനുവദിച്ചു, എന്നാൽ അതേ സമയം, സാധാരണ പേൾ ​​പ്രോഗ്രാമർമാർക്ക് ഭാഷയിൽ പുതിയ സവിശേഷതകൾ ചേർക്കാനുള്ള അവസരം ഇത് നൽകി. Perl 5 ഇന്നും സജീവമായ വികസനത്തിലാണ്.

പേൾ 5.001 1995 മാർച്ച് 13-ന് പുറത്തിറങ്ങി. പുതിയ പ്രോട്ടോടൈപ്പ് പിന്തുണയോടെ 1996 ഫെബ്രുവരി 29-ന് Perl 5.002 പുറത്തിറങ്ങി. ബിൽറ്റ്-ഇന്നുകൾ പോലെയുള്ള പ്രവർത്തനങ്ങൾ സൃഷ്ടിക്കാൻ ഇത് മൊഡ്യൂൾ രചയിതാക്കളെ അനുവദിച്ചു. പേൾ പ്രവർത്തനങ്ങൾ. പേൾ പതിപ്പ് 5.003 1996 ജൂൺ 25-ന് പുറത്തിറങ്ങി, സുരക്ഷാ പ്രശ്നങ്ങൾ പരിഹരിച്ചു.

പേൾ 5 ന്റെ ചരിത്രത്തിലെ ഏറ്റവും പ്രധാനപ്പെട്ട സംഭവവികാസങ്ങളിലൊന്ന് ഭാഷയ്ക്ക് പുറത്ത് സംഭവിച്ചു, ഇത് മൊഡ്യൂൾ പിന്തുണയുടെ അനന്തരഫലമായിരുന്നു. 1995 ഒക്ടോബർ 26-ന്, CPAN (സമഗ്ര പേൾ ആർക്കൈവ് നെറ്റ്‌വർക്ക്) അതിന്റെ പ്രവർത്തനം ആരംഭിച്ചു, അത് ഒരു ശേഖരമായി മാറി. പേൾ മൊഡ്യൂളുകൾ, അതുപോലെ തന്നെ ഭാഷയുടെ സോഴ്സ് കോഡും. ഓൺ ഈ നിമിഷം 8,000-ത്തിലധികം പ്രോഗ്രാമർമാർ സൃഷ്ടിച്ച 25,000-ലധികം മൊഡ്യൂളുകൾ നെറ്റ്‌വർക്കിലുണ്ട്.

Perl 5.004 1997 മെയ് 15 ന് പുറത്തിറങ്ങി, മറ്റ് കാര്യങ്ങൾക്കൊപ്പം, എല്ലാ ക്ലാസുകളും സ്വപ്രേരിതമായി ഉരുത്തിരിഞ്ഞ ഒരു പ്രധാന ഒബ്ജക്റ്റ് ഭാഷയ്ക്ക് നൽകിയ യൂണിവേഴ്സൽ പാക്കേജ് ഇതിൽ അടങ്ങിയിരിക്കുന്നു. മൊഡ്യൂൾ പതിപ്പ് അന്വേഷിക്കാനുള്ള കഴിവും ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഇത് കൂടാതെ, പേൾ ഇപ്പോൾ പിന്തുണയ്ക്കുന്നു മൈക്രോസോഫ്റ്റ് വിൻഡോസ്, കൂടാതെ മറ്റ് നിരവധി ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും.

പേൾ 5.005 1998 ജൂൺ 22-ന് പുറത്തിറങ്ങി. ഈ റിലീസിൽ റെഗുലർ എക്സ്പ്രഷൻ പ്രോസസറിലെ നിരവധി മെച്ചപ്പെടുത്തലുകൾ, ബി::* മൊഡ്യൂളുകൾ ഉപയോഗിക്കുന്ന പുതിയ ബാക്കെൻഡ് ഹുക്കുകൾ, റെഗുലർ എക്സ്പ്രഷനുകൾക്കുള്ള qr// ഉദ്ധരണി ഓപ്പറേറ്റർ, മറ്റ് പുതിയ മൊഡ്യൂളുകളുടെ ഒരു വലിയ നിര, കൂടാതെ നിരവധി ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കുള്ള പിന്തുണ എന്നിവ ഉൾപ്പെടുന്നു. ബിഒഎസ്.

2000-കൾ

പേൾ 5.6 2000 മാർച്ച് 22-ന് പുറത്തിറങ്ങി. പ്രധാന മാറ്റങ്ങളിൽ 64-ബിറ്റ് സിസ്റ്റങ്ങൾക്കുള്ള പിന്തുണ, യൂണികോഡ് സ്റ്റാൻഡേർഡിലെ സ്ട്രിംഗുകളുടെ പ്രാതിനിധ്യം, പിന്തുണ എന്നിവ ഉൾപ്പെടുന്നു. വലിയ ഫയലുകൾ(2 GB-യിൽ കൂടുതലുള്ള ഫയലുകൾ) കൂടാതെ കീവേഡ്ഞങ്ങളുടെ കുറിച്ച്. പേൾ 5.6-ന്റെ വികസന വേളയിൽ, മറ്റ് ഓപ്പൺ സോഴ്‌സ് പ്രോജക്റ്റുകൾക്ക് സമാനമായ ഒന്നിലേക്ക് പതിപ്പ് നാമകരണ പദ്ധതി മാറ്റാൻ തീരുമാനിച്ചു. സോഴ്സ് കോഡ്. പതിപ്പ് 5.005_63-ന് ശേഷം 5.5.640 പതിപ്പ്; പ്ലാൻ അനുസരിച്ച്, വികസനത്തിലുള്ള പതിപ്പുകൾക്ക് ഒറ്റ സംഖ്യകളും സ്ഥിരമായ പതിപ്പുകളും - ഇരട്ട സംഖ്യകൾ നൽകണം.

2000-ൽ, പേളിന്റെ അടുത്ത പതിപ്പിനായുള്ള നിർദ്ദേശങ്ങൾ സജീവമായി ചർച്ച ചെയ്യാൻ ലാറി വാൾ കമ്മ്യൂണിറ്റിക്ക് ഒരു ആഹ്വാനം നൽകി. ഈ ചർച്ചയുടെ ഫലം Perl 6-ന്റെ വികസനത്തിൽ ഉപയോഗിച്ച 361 RFC-കൾ (അഭിപ്രായങ്ങൾക്കായുള്ള അഭ്യർത്ഥന) ആയിരുന്നു.

2001-ൽ, ഒരു പുതിയ തലമുറ പേളിനുള്ള നിർദ്ദേശങ്ങൾ സംഗ്രഹിക്കുന്ന അന്തിമ രേഖയുടെ ജോലി ആരംഭിച്ചു. ഫലം ഒരു ഔപചാരിക പ്രമാണമായിട്ടല്ല, എല്ലാ RFC-കളുടെയും സംഗ്രഹമായാണ് അവതരിപ്പിച്ചത്. ഈ സമയം, പേൾ 6 ഒരു ഭാഷാ വിവരണം മാത്രമായി നിലനിന്നിരുന്നു.

2002 ജൂലൈ 18 നാണ് പേൾ 5.8 ആദ്യമായി പുറത്തിറങ്ങിയത്, അന്നുമുതൽ വാർഷിക അപ്‌ഡേറ്റുകൾ ലഭിച്ചു. 5.8.9 എന്ന നമ്പറുള്ള പേൾ 5.8-ന്റെ ഏറ്റവും പുതിയ പതിപ്പ് 2008 ഡിസംബർ 14-ന് പുറത്തിറങ്ങി. Perl 5.8 യൂണികോഡ് പിന്തുണ മെച്ചപ്പെടുത്തി, ഒരു പുതിയ I/O നടപ്പിലാക്കൽ ചേർത്തു, മൾട്ടിത്രെഡിംഗ് പിന്തുണ ചേർത്തു, സംഖ്യാ കൃത്യത വർദ്ധിപ്പിച്ചു, കൂടാതെ നിരവധി പുതിയ മൊഡ്യൂളുകൾ ചേർത്തു.

2004-ൽ, മുകളിൽ സൂചിപ്പിച്ച അന്തിമ രേഖയെ സംഗ്രഹിക്കുന്ന പ്രമാണങ്ങളുടെ ഒരു പരമ്പരയായി ഉദ്ദേശിച്ചുള്ള സംഗ്രഹത്തിന്റെ പ്രവർത്തനം ആരംഭിച്ചു. എന്നിരുന്നാലും, ക്രമേണ ഈ രേഖകൾ പേൾ 6 സ്‌പെസിഫിക്കേഷനായി മാറി.2005 ഫെബ്രുവരിയിൽ, ഒട്രിയസ് ടാൻ, ഹാസ്‌കെലിൽ എഴുതിയ പേൾ 6 ഇന്റർപ്രെറ്ററായ പഗ്‌സിന്റെ പ്രവർത്തനം ആരംഭിച്ചു. പേൾ 6 യാഥാർത്ഥ്യമാക്കാനുള്ള ആദ്യത്തെ യഥാർത്ഥ ശ്രമമായിരുന്നു ഇത്. 2006-ൽ ഈ ശ്രമം നിലച്ചു.

നിങ്ങൾക്ക് 20 വയസ്സിന് മുകളിലായിരിക്കുമ്പോൾ

2007 ഡിസംബർ 18-ന്, Perl 1.0-ന്റെ 20-ാം വാർഷികം, Perl 5.10.0 പുറത്തിറങ്ങി. ഈ പതിപ്പിൽ നിരവധി ശ്രദ്ധേയമായ പുതുമകൾ അടങ്ങിയിരിക്കുന്നു, അത് പേൾ 6-ലേക്ക് അടുപ്പിച്ചു. ഈ നൂതനങ്ങളിൽ ചിലത് പുതിയ സ്വിച്ച് സ്റ്റേറ്റ്‌മെന്റുകൾ ("കൊടുത്തത്"/"എപ്പോൾ" എന്ന് വിളിക്കപ്പെടുന്നു), പതിവ് എക്സ്പ്രഷനുകളിലേക്കുള്ള അപ്‌ഡേറ്റുകൾ, "സ്മാർട്ട്" പൊരുത്തപ്പെടുന്ന ഓപ്പറേറ്റർ "~~ എന്നിവയായിരുന്നു. ".


"പേൾ" വാർഷികം

ഈ സമയത്ത്, വികസനം തീവ്രമായി ആരംഭിച്ചു പുതിയ നടപ്പാക്കൽപാരറ്റ് വെർച്വൽ മെഷീനുമായി ചേർന്ന് വികസിപ്പിച്ചെടുത്ത Rakudo Perl എന്നറിയപ്പെടുന്ന പേൾ 6. 2009 നവംബർ മുതൽ, Rakudo Perl എല്ലാ മാസവും പതിവായി അപ്‌ഡേറ്റ് ചെയ്യപ്പെടുന്നു, നിലവിൽ Perl 6-ന്റെ ഏറ്റവും പൂർണ്ണമായ നിർവ്വഹണമാണിത്.

Perl 5.11 പുറത്തിറങ്ങിയതോടെ Perl 5 വികസന പ്രക്രിയയിൽ കാര്യമായ മാറ്റം സംഭവിച്ചു. ഡെവലപ്‌മെന്റ് കമ്മ്യൂണിറ്റി പ്രതിമാസ റിലീസ് സൈക്കിളിലേക്ക് നീങ്ങി, റിലീസ് തീയതികൾ മൂന്ന് മാസം മുമ്പ് പ്ലാൻ ചെയ്തു.

2010 ഏപ്രിൽ 12-ന് പേർൾ 5.12.0 പൊതുജനങ്ങൾക്കായി പുറത്തിറക്കി. പുതിയ പാക്കേജ് NAME VERSION സിന്റാക്‌സിനുള്ള പിന്തുണ, Yada Yada ഓപ്പറേറ്റർ (ഇതുവരെ നടപ്പിലാക്കിയിട്ടില്ലാത്ത പ്ലെയ്‌സ്‌ഹോൾഡർ കോഡ് അടയാളപ്പെടുത്താൻ സഹായിക്കുന്നു), "Y2038 പ്രശ്‌നത്തിന്" പൂർണ്ണമായ പരിഹാരം, പതിവ് എക്സ്പ്രഷൻ ഓപ്പറേറ്റർമാരുടെ ഓവർലോഡിംഗ്, DTrace-നുള്ള പിന്തുണ എന്നിവ ശ്രദ്ധേയമായ സവിശേഷതകളിൽ ഉൾപ്പെടുന്നു. (ഒരു ഡൈനാമിക് ട്രെയ്സ്), അതുപോലെ പൂർണ്ണ പിന്തുണ യൂണികോഡ് സ്റ്റാൻഡേർഡ് 5.2.

Perl 5.12.2 സെപ്റ്റംബർ 7, 2010 നും Perl 5.12.3 ജനുവരി 21, 2011 നും പുറത്തിറങ്ങി. ഈ റിലീസുകളിൽ മൊഡ്യൂൾ അപ്‌ഡേറ്റുകളും ചില ഡോക്യുമെന്റേഷൻ മാറ്റങ്ങളും അടങ്ങിയിരിക്കുന്നു. 5.12.4 പതിപ്പ് 2011 ജൂൺ 20-ന് പുറത്തിറങ്ങി. ഈ ശാഖയുടെ ഏറ്റവും പുതിയ പതിപ്പായ 5.12.5, 2012 നവംബർ 10-ന് പുറത്തിറങ്ങി.

കഴിഞ്ഞ പഞ്ചവത്സര പദ്ധതി

Perl 5.14 2011 മെയ് 14 ന് പുറത്തിറങ്ങി. പതിപ്പ് 5.14.2 മുതൽ JSON പിന്തുണ ബിൽറ്റ്-ഇൻ ആയി മാറി. ഈ ശാഖയുടെ ഏറ്റവും പുതിയ പതിപ്പായ 5.14.4, 2013 മാർച്ച് 10-ന് പുറത്തിറങ്ങി.

Perl 5.16 2012 മെയ് 20 ന് പുറത്തിറങ്ങി. പുതിയ പതിപ്പുമായി പൊരുത്തപ്പെടാത്ത പഴയ സ്‌ക്രിപ്റ്റുകളുടെ പ്രവർത്തനക്ഷമത നിലനിർത്തിക്കൊണ്ട് പേൾ അപ്‌ഡേറ്റ് ചെയ്യാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്ന, അനുകരണീയമാക്കേണ്ട പേളിന്റെ ആവശ്യമുള്ള പതിപ്പ് വ്യക്തമാക്കാനുള്ള കഴിവാണ് ഒരു പ്രധാന പുതുമ. Perl 5.16 core യൂണികോഡ് 6.1 പിന്തുണയ്ക്കുന്നു.

Perl 5.18 2013 മെയ് 18 ന് പുറത്തിറങ്ങി. പുതിയ ഡിട്രേസ് ഹുക്കുകൾ, ലെക്സിക്കൽ ഫംഗ്‌ഷനുകൾ, കേർണലിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഫംഗ്‌ഷനുകളുടെ എണ്ണത്തിൽ വർദ്ധനവ്, സുരക്ഷാ കാരണങ്ങളാൽ ഹാഷുകൾ നടപ്പിലാക്കുന്നതിനുള്ള പുനരവലോകനം, യൂണികോഡ് 6.2-നുള്ള പിന്തുണ എന്നിവ ശ്രദ്ധേയമായ പുതുമകളിൽ ഉൾപ്പെടുന്നു.

2014 മെയ് 27-ന് പുതിയൊരെണ്ണം പുറത്തിറങ്ങി സ്ഥിരതയുള്ള പതിപ്പ്- പേൾ 5.20.0. പെർൾ 5.18.0 മുതൽ ആരംഭിച്ച് ഏകദേശം 12 മാസമെടുത്ത വികസനം, 124 രചയിതാക്കളിൽ നിന്നുള്ള 2,900 ഫയലുകൾക്കിടയിൽ ഏകദേശം 470,000 പരിഷ്കരിച്ച ലൈനുകൾ ഉൾക്കൊള്ളുന്നു.

Perl 5.22.1 2015 ഡിസംബറിൽ പുറത്തിറങ്ങി. വികസനം 6 മാസമെടുത്തു.

2016 മെയ് 9-ന്, Perl 5.24.0 പ്രോഗ്രാമിംഗ് ഭാഷയുടെ ഒരു പുതിയ സ്ഥിരതയുള്ള പതിപ്പ് പുറത്തിറങ്ങി. ഡെവലപ്‌മെന്റ് ഏകദേശം 11 മാസമെടുത്തു, പേൾ 5.22.0 മുതൽ ആരംഭിച്ച്, 77 രചയിതാക്കളിൽ നിന്നുള്ള 1,800 ഫയലുകളിൽ ഏകദേശം 360,000 പരിഷ്‌ക്കരിച്ച ലൈനുകൾ അടങ്ങിയിരിക്കുന്നു.

ജൂലൈ 2016 ലെ ഡാറ്റ അനുസരിച്ച്, പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ ജനപ്രീതിയുടെ വളർച്ച അളക്കുന്ന TIOBE സൂചിക, പേൾ 9-ാം സ്ഥാനത്തെത്തി:

കഴിഞ്ഞ വർഷത്തേക്കാൾ 2 സ്ഥാനങ്ങൾ കൂടുതലാണിത്.

പേൾ 6

വിക്കിപീഡിയയിൽ സൂചിപ്പിച്ചതുപോലെ, പേൾ പ്രോഗ്രാമിംഗ് ഭാഷയുടെ അടുത്ത പതിപ്പാണ് Perl 6 (ഘടനാപരമായ വീക്ഷണകോണിൽ നിന്ന്, Perl 6 ആയി പരിഗണിക്കുന്നത് കൂടുതൽ സൗകര്യപ്രദമാണ്. സ്വതന്ത്ര ഭാഷപ്രോഗ്രാമിംഗ്). ഭാഷയുടെ വിപ്ലവകരമായ വികാസമാണ്, രണ്ടാമത്തേത് ഏതാണ്ട് "കൂടെ" എഴുതിയതാണ് ശുദ്ധമായ സ്ലേറ്റ്" പേളിന്റെ ചരിത്രത്തിൽ ആദ്യമായി, ഒരു പുതിയ പതിപ്പിന്റെ വികസനം ആരംഭിച്ചത് സ്പെസിഫിക്കേഷനുകൾ എഴുതിയാണ്, അവ ഇന്നും മാറ്റത്തിന് വിധേയമാണ്.

Perl 6, ഒരു പ്രോഗ്രാം കംപൈൽ ചെയ്യുമ്പോൾ, ബൈറ്റ്കോഡ് സൃഷ്ടിക്കുന്നു, അത് എക്സിക്യൂട്ട് ചെയ്യുന്നു വെർച്വൽ മെഷീൻ. ഇതേ സമീപനമാണ് ഉപയോഗിച്ചിരിക്കുന്നത് ജാവ സാങ്കേതികവിദ്യകൾകൂടാതെ .NET ഫ്രെയിംവർക്ക്.

വാസ്തവത്തിൽ, നമുക്ക് ഒരു പുതിയ ഭാഷയെക്കുറിച്ച് സംസാരിക്കാം മുൻ പതിപ്പ് Perl-ന് പൊതുവായ വേരുകളുണ്ട്, പക്ഷേ അതുമായി പൊരുത്തപ്പെടുന്നില്ല, എന്നിരുന്നാലും സവിശേഷതകൾ ഒരു അനുയോജ്യത മോഡ് നിർദ്ദേശിച്ചു.

പേൾ 6 ന്റെ വികസനം 2000 ൽ ആരംഭിച്ചു, ഇന്നും തുടരുന്നു.

കംപൈൽ ചെയ്ത Unix യൂട്ടിലിറ്റികളുമായി താരതമ്യപ്പെടുത്താവുന്ന ഒരു ടൂളാണ് പേൾ ആദ്യം ഉദ്ദേശിച്ചത്. പേൾ റൺടൈം സിസ്റ്റം റീഡ് ചെയ്യുന്നതിനാൽ പ്രവർത്തന വേഗത ഉറപ്പാക്കേണ്ടതായിരുന്നു യഥാർത്ഥ വാചകംപേൾ പ്രോഗ്രാം ചെയ്ത് അത് ഈച്ചയിൽ കംപൈൽ ചെയ്യുന്നു, തുടർന്ന് കംപൈൽ ചെയ്ത പ്രോഗ്രാമിനെ ഉടനടി വ്യാഖ്യാനിക്കുന്നു.

ലാറി വാൾ ഒരു പ്രോഗ്രാമറുടെ മൂന്ന് പ്രധാന ഗുണങ്ങൾ തമാശയായി പ്രഖ്യാപിച്ചു: അലസത, അക്ഷമ, അഹങ്കാരം. അദ്ദേഹത്തിന്റെ അഭിപ്രായത്തിൽ, ഈ ഡവലപ്പർ ഗുണങ്ങൾ നിറവേറ്റുന്നതിനാണ് പേൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്.

ഈ ലേഖനം ആളുകൾക്ക് വേണ്ടി എഴുതിയതാണ് ബലപ്രയോഗംപേൾ പഠിക്കാനുള്ള ആഗ്രഹം പെട്ടെന്ന് തോന്നി. എന്നെ സംബന്ധിച്ചിടത്തോളം, ഈ സാഹചര്യം എന്റെ കമ്പ്യൂട്ടർ ഒരു വെബ് സെർവറായി മാറി, അതനുസരിച്ച് ഞാൻ ഒരു വെബ് മാസ്റ്ററായി. മറ്റുള്ളവരുടെ തെറ്റുകളിൽ നിന്നും അനുഭവങ്ങളിൽ നിന്നും പഠിക്കുന്നത് പതിവാണ്, അതിനാൽ ഞാൻ മുത്തിനെക്കുറിച്ചുള്ള എന്റെ അനുഭവം നിങ്ങളുടെ ശ്രദ്ധയിൽപ്പെടുത്തുന്നു.

ഇതെല്ലാം ആർക്കുവേണ്ടിയാണ് എഴുതിയതെന്ന് ഉടൻ വിശദീകരിക്കേണ്ടത് ആവശ്യമാണ്. നിങ്ങളുടെ സെർവർ ഓൺ ആണെങ്കിൽ UNIX പ്ലാറ്റ്ഫോം, എങ്കിൽ ഞാൻ നിങ്ങളുടെ ലേഖനം വായിക്കണം. എനിക്ക് Windows NT വർക്ക്സ്റ്റേഷൻ 4.0 (RUS) പ്ലസ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട് സേവന പായ്ക്ക് 3. എന്റെ കമ്പ്യൂട്ടറിൽ നിന്ന് ഒരു വെബ് സെർവർ നിർമ്മിക്കാനുള്ള സമയമായപ്പോൾ, ബിൽറ്റ്-ഇൻ വെബ് ഹോസ്റ്റ് സേവനങ്ങളിലേക്ക് ഞാൻ ഓടിയെത്തി, പക്ഷേ എനിക്കത് ഇഷ്ടമല്ലെന്ന് പെട്ടെന്ന് മനസ്സിലായി (എന്തുകൊണ്ട്?). തുടർന്ന് ദയയുള്ള ഒരാൾ Xitami ഇൻസ്റ്റാൾ ചെയ്യാൻ ഉപദേശിച്ചു വെബ് സെർവർ iMatix കോർപ്പറേഷനിൽ നിന്ന് (), അത് ഇന്നും നിലനിൽക്കുന്നു.

പേളിനെ സംബന്ധിച്ചിടത്തോളം, ഇത് കുറച്ചുകൂടി സങ്കീർണ്ണമാണ്. വിവിധ Perl സെർവറുകൾ (www.perl.org, www.perl.com) പരിശോധിച്ചതിന് ശേഷം, Perl-ന്റെ നിരവധി പതിപ്പുകൾ ഉണ്ടെന്ന് ഞാൻ മനസ്സിലാക്കി, പ്രത്യേകമായ എന്തെങ്കിലും തിരഞ്ഞെടുക്കുന്നത് വളരെ ബുദ്ധിമുട്ടാണ്. അതേ സമയം, ഒരു പതിപ്പ് അല്ലെങ്കിൽ മറ്റൊന്ന് തിരഞ്ഞെടുക്കുന്നത് സംബന്ധിച്ച് എവിടെയും വ്യക്തമായ ശുപാർശകളൊന്നുമില്ല. വിൻഡോസിനായി മിക്കവാറും എല്ലാ പതിപ്പുകളും പരീക്ഷിച്ച ശേഷം, ഞാൻ Active Perl() തിരഞ്ഞെടുത്തു.

എല്ലാത്തരം വിൻഡോസ്, ഡെൽഫി എന്നിവയാൽ കേടായ ഒരു വ്യക്തിക്ക്, Perl-ൽ പ്രോഗ്രാമുകൾ എഴുതുന്നത് തികച്ചും അസാധാരണമാണ്, അതിനാൽ ഉടൻ തന്നെ Perl Builder ഇൻസ്റ്റാൾ ചെയ്യാൻ ഞാൻ ശക്തമായി ശുപാർശ ചെയ്യുന്നു. നിങ്ങൾക്ക് ഇത് www.solutionsoft.com ൽ ലഭിക്കും. അവിടെ മുപ്പത് ദിവസത്തെ ഡെമോ പതിപ്പ് ഉണ്ടായിരുന്നു.

ശരി, നേരിട്ട് കാര്യത്തിലേക്ക് കടക്കാൻ സമയമായെന്ന് ഞാൻ കരുതുന്നു. പൊതുവേ, മറ്റേതൊരു പ്രോഗ്രാമിനെയും പോലെ ഒരു പേൾ സ്ക്രിപ്റ്റ് ഇതുപോലെ പ്രവർത്തിക്കുന്നു:

  1. ഡാറ്റ സ്വീകരിക്കുന്നു
  2. ഡാറ്റ പ്രോസസ്സ് ചെയ്യുന്നു
  3. ഫലങ്ങൾ നൽകുന്നു

നിങ്ങൾക്ക് രണ്ട് രീതികൾ ഉപയോഗിച്ച് സ്ക്രിപ്റ്റിലേക്ക് ഡാറ്റ കൈമാറാൻ കഴിയും - GET, POST. അവ തമ്മിലുള്ള വ്യത്യാസം, GET ഉപയോഗിക്കുമ്പോൾ, ഡാറ്റ ബ്രൗസറിന്റെ വിലാസ ബാറിൽ നിരന്തരം തൂങ്ങിക്കിടക്കുന്നു, ഉദാഹരണത്തിന്:

Httr://treagraf.tasur.edu.ru/cgi-bin/price.pl?Category=POWER&Description=varta

ഈ സാഹചര്യത്തിൽ, B_price.pl സ്ക്രിപ്റ്റ് QUERY-STRING എൻവയോൺമെന്റ് വേരിയബിളിലെ ഡാറ്റ എടുക്കുന്നു.

$ഡാറ്റ=$ENV("QUERY_STRING");

ഉപയോഗിക്കുന്നത് പോസ്റ്റ് രീതിഡാറ്റ കൈമാറുന്നു സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്സ്ക്രിപ്റ്റ്. ഡാറ്റ ബ്ലോക്കിന്റെ ദൈർഘ്യം CONTENT_LENGTH വേരിയബിളിൽ എടുക്കുന്നു:

വായിക്കുക(STDIN,$data,$ENV("CONTENT_LENGTH"));

ഇപ്പോൾ ഈ ഡാറ്റ എൻകോഡ് ചെയ്‌തിരിക്കുന്നതിനാൽ ദഹിപ്പിക്കാവുന്ന രൂപത്തിലേക്ക് വിവർത്തനം ചെയ്യേണ്ടതുണ്ട്.

സ്‌പെയ്‌സുകളെ പ്ലസ് ചിഹ്നങ്ങൾ ഉപയോഗിച്ച് മാറ്റി പകരം (%) ചിഹ്നത്തിന് മുമ്പുള്ള ഹെക്‌സാഡെസിമലിൽ ASCII കോഡുകൾ ഉപയോഗിച്ച് ശേഷിക്കുന്ന അസാധുവായ പ്രതീകങ്ങൾ എൻകോഡ് ചെയ്യുക എന്നതാണ് സ്റ്റാൻഡേർഡ് കൺവെൻഷൻ. ഉദാഹരണം:

Http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl\ ?Category=%C2%E8%E4%E5%EE&Description=%E0%E1%E2%E3

ഇതിനർത്ഥം:

Http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl?\ Category=Video&Description=abvg

ആദ്യമായി അന്വേഷണ സ്ട്രിംഗ് സ്വയം ഡീകോഡ് ചെയ്യുന്നതാണ് നല്ലത്. "എങ്ങനെ?" എന്ന ചോദ്യത്തിന് തിരുത്തിയെഴുതുന്നതിൽ അർത്ഥമില്ലാത്ത നിരവധി ഉത്തരങ്ങളുണ്ട്. ഞാൻ ഒരു ചെറിയ ഉദാഹരണം മാത്രം പറയാം:

(+) ചിഹ്നങ്ങൾ സ്‌പെയ്‌സുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക

$query = ~ s/\+/ /g;

തുടർന്ന് ഞങ്ങൾ ചിഹ്നത്തിന്റെ (%) എല്ലാ കോമ്പിനേഷനുകളും, തുടർന്ന് ഹെക്സാഡെസിമൽ അക്കങ്ങളും അനുബന്ധമായ ASCII പ്രതീകം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു.

$query =~ s/%((2))/പാക്ക്("C", hex($1))/ഉദാ;

Perl Builder ഓഫർ ചെയ്യുന്നത് ഞാൻ ഉപയോഗിക്കുന്നു:

#! E:\perl5\bin\perl # ഡാറ്റ വീണ്ടെടുക്കൽ പതിവ് $Category = $ഫീൽഡ്("വിഭാഗം"); # വിഭാഗം ഫീൽഡിൽ നിന്ന് ഡാറ്റ നേടുക $Description = $ഫീൽഡ്("വിവരണം"); # വിവരണ ഫീൽഡിൽ നിന്ന് ഡാറ്റ നേടുക $പേജ് = $ഫീൽഡ്("പേജ്"); # പേജ് ഫീൽഡിൽ നിന്ന് ഡാറ്റ നേടുക

സ്ക്രിപ്റ്റിന്റെ അവസാനം ഞങ്ങൾ "സുതാര്യമായ" ഡാറ്റ റീഡിംഗിനായി ഒരു സബ്റൂട്ടീൻ സ്ഥാപിക്കുന്നു.

സബ് GetFormInput ((*fval) = @_ ആണെങ്കിൽ @_ ; ലോക്കൽ ($buf); എങ്കിൽ ($ENV("REQUEST_METHOD") eq "POST") (വായിക്കുക(STDIN,$buf,$ENV("CONTENT_LENGTH")) ; ) വേറെ ($buf=$ENV("QUERY_STRING"); ) എങ്കിൽ ($buf eq "") (റിട്ടേൺ 0;) വേറെ (@fval=split(/&/,$buf); foreach $i (0 . . $#fval)( ($name,$val)=വിഭജനം (/=/,$fval[$i],2); $val=~tr/+/ /; $val=~ s/%(.. )/പാക്ക്("c",ഹെക്സ്($1))/ge; $name=~tr/+/ /; $name=~ s/%(..)/pack("c",hex($1))/ ge; എങ്കിൽ (!defined($field($name))) ($field($name)=$val; ) else ($field($name) .= ",$val"; #നിങ്ങൾക്ക് ഒന്നിലധികം തിരഞ്ഞെടുക്കലുകൾ വേണമെങ്കിൽ ഒരു അറേയിലേക്ക് മാറുന്നതിന്: #$ഫീൽഡ്($name) .= "\0$val"; ) ) 1 മടങ്ങുക; )

സ്ക്രിപ്റ്റിന്റെ രണ്ടാം ഘട്ടം - ഡാറ്റ പ്രോസസ്സിംഗ് - പൂർണ്ണമായും നിങ്ങളുടെ വിവേചനാധികാരത്തിലാണ്. ലഭിച്ച ഡാറ്റ കൃത്യതയ്ക്കായി പരിശോധിക്കുക, ഒരു ഫയലിലേക്ക് എഴുതുക, നിങ്ങൾക്ക് ആവശ്യമുള്ളത് ചെയ്യുക.

അവസാനമായി, നിങ്ങൾ ക്ലയന്റിന്റെ ബ്രൗസറിലേക്ക് ചില ഫലങ്ങൾ നൽകേണ്ടതുണ്ട്, അതുവഴി ബ്രൗസർ അവ ശരിയായി പ്രദർശിപ്പിക്കും. അതായത്, നിങ്ങൾ HTML-ൽ ഫലങ്ങൾ പ്രദർശിപ്പിക്കേണ്ടതുണ്ട്. ഇത് ലളിതമായി ചെയ്തു: (വ്യത്യസ്ത രീതികളിലും ചെയ്യാം)

"ഉള്ളടക്ക-തരം: വാചകം/html", "/n/n" അച്ചടിക്കുക; #ആവശ്യമായ ലൈൻ പ്രിന്റ് "

നിങ്ങൾ നൽകിയ വിഭാഗ ഫീൽഡിൽ: ", $Category, "

ഒരു HTML പേജിലെ ഒരു ഫോമിൽ നിന്ന് ഡാറ്റ സ്വീകരിക്കുന്ന സ്ക്രിപ്റ്റുകൾക്ക് ഇതെല്ലാം ബാധകമാണ്. ഈ സാഹചര്യത്തിൽ, ഫോം ഉള്ള പേജ് പ്രത്യേകമാണ്, സ്ക്രിപ്റ്റ് പ്രത്യേകമാണ്. നിങ്ങൾക്ക് ഇത് കൂടുതൽ മനോഹരവും കൂടുതൽ സൗകര്യപ്രദവുമാക്കാൻ കഴിയും: പേജും സ്ക്രിപ്റ്റും ഒരു മൊത്തത്തിൽ സംയോജിപ്പിക്കുക. ഇത് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന സ്കീം അനുസരിച്ച് സ്ക്രിപ്റ്റ് എഴുതിയിരിക്കുന്നു:

  1. ആദ്യം സമാരംഭിക്കുമ്പോൾ, സ്ക്രിപ്റ്റ് വരയ്ക്കുന്നു HTML പേജ്ആക്‌ഷൻ ടാഗിലെ ഒരു ഫോമും ലിങ്കും അതിലേക്ക് തന്നെ. ഇൻപുട്ട് ഡാറ്റയുടെ അഭാവമാണ് ആദ്യ റൺ നിർണ്ണയിക്കുന്നത്.
  2. ഇൻപുട്ട് ഡാറ്റ ഉണ്ടെങ്കിൽ, ഞങ്ങൾ അത് സ്വീകരിക്കുകയും പ്രോസസ്സ് ചെയ്യുകയും ഫലങ്ങൾ സൃഷ്ടിക്കുകയും ചെയ്യുന്നു.

#! E:\perl5\bin\perl എങ്കിൽ (($ENV("QUERY_STRING") eq "") അല്ലെങ്കിൽ ($ENV(CONTENT_LENGTH)=0)) ( # ഫോം ഉപയോഗിച്ച് ഒരു പേജ് സൃഷ്‌ടിക്കുക ) അല്ലെങ്കിൽ (# ഡാറ്റ സ്വീകരിക്കുക, പ്രോസസ്സ് ചെയ്യുക കൂടാതെ ഫലം ഔട്ട്പുട്ട് ചെയ്യുക)

അതിഥി പുസ്തകം

അതിഥി പുസ്തകത്തിന്റെ പൊതുവായ അൽഗോരിതം ഇപ്രകാരമാണ്:

1. ഒരു സന്ദർശകൻ പുസ്തകത്തിൽ ഒരു എൻട്രി ചെയ്യാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, പിന്നെ
1.1 ഡാറ്റ ലഭിക്കുന്നു
1.2 അവ ഒരു ഫയലിലേക്കോ ഡാറ്റാബേസിലേക്കോ എഴുതുക
1.3 ഞങ്ങൾ HTML-ന് നന്ദി പറയുകയും മറ്റ് എൻട്രികൾ വായിക്കാൻ നിർദ്ദേശിക്കുകയും ചെയ്യുന്നു
2. സന്ദർശകന് പുസ്തകത്തിലെ എൻട്രികൾ വായിക്കണമെങ്കിൽ, പിന്നെ
2.1 ഒരു ഫയലിൽ നിന്നോ ഡാറ്റാബേസിൽ നിന്നോ റെക്കോർഡുകൾ വായിക്കുന്നു
2.2 ഞങ്ങൾ അവയെ HTML-ൽ മനോഹരമായി പ്രദർശിപ്പിക്കുന്നു

ധാരണയുടെ എളുപ്പത്തിനായി, യഥാക്രമം add_guestbook.pl, read_guestbook.pl എന്നീ പ്രത്യേക സ്ക്രിപ്റ്റുകൾ ഉപയോഗിച്ച് ഞാൻ പോയിന്റ് 1, 2 ഫോർമാറ്റ് ചെയ്തു. അതിഥി പുസ്തക സന്ദേശങ്ങൾ ഒരു ടെക്സ്റ്റ് ഫയലിൽ വരി വരിയായി സംഭരിക്കുന്നു, അതായത്. ഓരോ റെക്കോർഡിനും ഒരു വരിയുണ്ട്. ഈ ഫയൽ വായിക്കുന്നത് എളുപ്പമാക്കുന്നതിനാണ് ഇത് ചെയ്യുന്നത്. ഒരു എൻട്രിയുടെ ഉദാഹരണം:

ശനി ഡിസംബർ 5 13:31:20 1998&നതാഷ&വിദ്യാർത്ഥി&നല്ലത്&ഒരു തുടക്കത്തിന്. ഈ മേഖലയിൽ നിങ്ങൾക്ക് വിജയം നേരുന്നു, അലക്സാണ്ടർ!&no@yet&194.226.60.34

സംശയാസ്‌പദമായ ഗസ്റ്റ്‌ബുക്കിലെ ഫീൽഡുകളുടെ ഒരു വിവരണം ഇതാ.

  • പേര് - ആദ്യനാമം, കുടുംബപ്പേര്, രക്ഷാധികാരി, വിളിപ്പേര് - സന്ദർശകന്റെ വിവേചനാധികാരത്തിൽ
  • ജോലി - തൊഴിൽ, തൊഴിൽ
  • റേഡിയോ ബട്ടൺ - മൂന്ന് ബട്ടണുകൾ: എനിക്ക് ഇത് ഇഷ്ടപ്പെട്ടു (നല്ലത്), എനിക്ക് ഇത് ഇഷ്ടപ്പെട്ടില്ല (മോശം), ഞാൻ കാര്യമാക്കുന്നില്ല (വ്യത്യസ്തമായത്)
  • ടെക്സ്റ്റ് - അഭിപ്രായങ്ങളുടെയും കുറിപ്പുകളുടെയും ടെക്സ്റ്റ് ബോക്സ്
  • ഇമെയിൽ - വിലാസം തിരികെ നൽകുക

പ്രോഗ്രാമിംഗ് ലോകത്തിലെ ഈ സുപ്രധാന സംഭവം 1986 ൽ സംഭവിച്ചു, ഒരു സാധാരണക്കാരൻ, ലാറി വാൾ, കഠിനമായ ജോലിക്ക് ശേഷം, താൻ പേൾ പ്രോഗ്രാമിംഗ് ഭാഷ വികസിപ്പിച്ചതായി ലോകത്തെ അറിയിച്ചു. ഈ സുപ്രധാന സംഭവത്തിലേക്കുള്ള പാത ബുദ്ധിമുട്ടുള്ളതും മുള്ളുള്ളതുമായി മാറി, പക്ഷേ ഫലം അത് വിലമതിക്കുന്നു. എങ്ങനെ, ആരാണ്, എന്തുകൊണ്ട് ഒരു പുതിയ പ്രോഗ്രാമിംഗ് ഭാഷ വികസിപ്പിച്ചെടുത്തു? ഈ ചോദ്യങ്ങൾക്കെല്ലാം ഉത്തരം ഇതാ.

പശ്ചാത്തലം

UNIX പ്രൊജക്റ്റിൽ പങ്കെടുത്തതാണ് ഈ കണ്ടുപിടുത്തത്തിന് പ്രേരണയായത്. സൃഷ്ടിക്കാൻ ആവശ്യമായതിനാൽ ജോലി ബുദ്ധിമുട്ടായിരുന്നു സുരക്ഷിത നെറ്റ്‌വർക്ക്നിരവധി ലെവലുകൾ ഉള്ളതിനാൽ, പരസ്പരം ഗണ്യമായ അകലത്തിൽ പ്രവർത്തിക്കുന്ന നിരവധി കമ്പ്യൂട്ടറുകളുടെ പ്രവർത്തനം സംയോജിപ്പിക്കാൻ കഴിയും. മുഴുവൻ പ്രക്രിയയും വിജയകരമായി പൂർത്തീകരിച്ചു, പക്ഷേ റിപ്പോർട്ടുകൾ വളരെ അധ്വാനിക്കുന്നതായിരിക്കണം, ഒരു വലിയ എണ്ണം ഫയലുകൾ മാത്രമല്ല, അവയ്ക്കിടയിലും.

ജോലിക്കായി awk ഫിൽട്ടർ ഉപയോഗിക്കാൻ വാൾ തീരുമാനിച്ചു, പക്ഷേ അപ്രതീക്ഷിതമായ ഒരു തടസ്സം ഉണ്ടായി: ഈ ഫയലുകളുടെ സ്ഥാനത്തെക്കുറിച്ചുള്ള വിവരങ്ങളുടെ അടിസ്ഥാനത്തിൽ ധാരാളം ഫയലുകൾ തുറക്കുന്നതും അടയ്ക്കുന്നതും നിയന്ത്രിക്കുന്നത് അസാധ്യമാണ്.

തുടക്കത്തിൽ, അപ്രതീക്ഷിതമായ ഒരു പ്രശ്നം പരിഹരിക്കാൻ ഒരു നിർദ്ദിഷ്ട സിസ്റ്റം യൂട്ടിലിറ്റി എഴുതാൻ ലാറി തീരുമാനിച്ചു. ഇപ്പോഴത്തെ അവസ്ഥയിൽ നിന്ന് ഒരു പോംവഴിയായി തോന്നി. എന്നാൽ അതിനുമുമ്പ്, ഈ പ്രശ്നം പരിഹരിക്കുന്നതിനായി അദ്ദേഹം ഇതിനകം തന്നെ നിരവധി യൂട്ടിലിറ്റികൾ സമാഹരിച്ചിരുന്നു, നിർഭാഗ്യവശാൽ, UNIX മാനദണ്ഡങ്ങൾക്കുള്ള ഒരു പരിഹാരമായി ഇത് മാറിയില്ല.

അതുകൊണ്ടാണ് കഴിവുള്ള ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ, പരിശീലനത്തിലൂടെ ഒരു ഭാഷാശാസ്ത്രജ്ഞൻ, അത് അവന്റെ ജോലിയിൽ സഹായിച്ചു, റിസ്ക് എടുത്ത് പേൾ പ്രോഗ്രാമിംഗ് ഭാഷ സൃഷ്ടിച്ചു, അതുവഴി ഒരേസമയം ടെക്സ്റ്റ് ഫയലുകൾ പ്രോസസ്സ് ചെയ്യാനും പരിഹാരം കണ്ടെത്താനും കഴിയും. സിസ്റ്റം ചുമതലകൾ, കൂടുതൽ മനസ്സിലാക്കാവുന്ന റിപ്പോർട്ടുകൾ സൃഷ്ടിക്കുക. അതേ സമയം, അത് സി ഭാഷയിൽ ആക്സസ് ചെയ്യാവുന്ന ലോ-ലെവൽ പ്രോഗ്രാമിംഗ് ആയിരിക്കണം.അതുകൊണ്ടാണ് പേൾ ഇന്റർപ്രെറ്റർ അതിൽ എഴുതിയത്.

പുതിയ പ്രോഗ്രാമിംഗ് ഭാഷ: അത് സംഭവിക്കാനുള്ള കാരണം

ലാറിയുടെ അഭിപ്രായത്തിൽ, അലസത ഒരു പുതിയ ഭാഷ സൃഷ്ടിക്കാൻ അവനെ സഹായിച്ചു. എന്നാൽ ഈ അലസതയാണ് ഒരു പ്രധാന പ്രശ്നം പരിഹരിക്കുന്നത് സാധ്യമാക്കിയത്: ഇതിനായി ധാരാളം പ്രോഗ്രാമുകൾ കംപൈൽ ചെയ്യുന്നത് എങ്ങനെ ഒഴിവാക്കാം വ്യത്യസ്ത ഭാഷകൾ, UNIX ടൂളുകളുടെ അവിഭാജ്യ ഘടകമായിരുന്നു. ഈ നടപടിക്രമം വളരെ വിരസമായിരുന്നു.

പുതിയ ഭാഷയുടെ ഗുണങ്ങൾ മറ്റുള്ളവർ വിലമതിച്ചു, കാരണം അത് ഫയൽ പ്രോസസ്സിംഗിന്റെ കഴിവുകളും യോജിപ്പും സംയോജിപ്പിച്ചു. സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ. ഒരു UNIX സിസ്റ്റം പ്രോഗ്രാം ചെയ്യുമ്പോൾ ആവശ്യമായ രണ്ട് വസ്തുതകൾ ഇവയാണ്.

പേൾ പ്രോഗ്രാമിംഗ് ഭാഷയ്ക്ക് മറ്റ് സമാന ഭാഷകളിൽ നിന്ന് നേരിയ വ്യത്യാസമുണ്ടെന്ന കാര്യം ശ്രദ്ധിക്കേണ്ടതാണ്: അത് പ്രത്യക്ഷപ്പെട്ടത് അതിന്റെ ആവശ്യകത ഉള്ളതുകൊണ്ടാണ്, അല്ലാതെ ഉപയോക്താക്കളെ അത്ഭുതപ്പെടുത്തുന്നതിനോ പ്രത്യേക പങ്ക് വഹിക്കാത്ത മറ്റൊരു മനോഹരമായ ഉപകരണം കൊണ്ടുവരുന്നതിനോ വേണ്ടിയല്ല.

നേരെമറിച്ച്, ലാറി തന്റെ കണ്ടുപിടുത്തം ഉപയോക്താക്കൾക്ക് അവതരിപ്പിച്ചപ്പോൾ, അത് സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാർക്കിടയിൽ ഒരു യഥാർത്ഥ സംവേദനം സൃഷ്ടിച്ചു, കാരണം ഇപ്പോൾ നിരവധി പ്രോഗ്രാമിംഗ് ഭാഷകൾ പരിശോധിക്കാൻ ധാരാളം സമയം ചെലവഴിക്കേണ്ട ആവശ്യമില്ല, കൂടാതെ ഇത് ഉപയോഗിച്ച് പ്രശ്നങ്ങൾ എളുപ്പത്തിൽ പരിഹരിക്കാനും കഴിഞ്ഞു. ഒരു ചിഹ്ന പട്ടിക ഉപയോഗിക്കുന്ന ഒരു ഭാഷ.

പ്രത്യേകതകൾ

റഷ്യൻ ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്താൽ, പേൾ എന്ന ചുരുക്കെഴുത്ത് "ഡാറ്റ എക്‌സ്‌ട്രാക്റ്റുചെയ്യുന്നതിനും റിപ്പോർട്ടുകൾ സൃഷ്‌ടിക്കുന്നതിനുമുള്ള ഒരു പ്രായോഗിക ഭാഷ" പോലെയാണ്.

ഇത്തരത്തിലുള്ള ഭാഷയുടെ പ്രതീകമായി ഒട്ടകത്തെ നിർമ്മിക്കാൻ അവർ തീരുമാനിച്ചു, ഒരുപക്ഷേ ഈ മൃഗം മാന്യവും കഠിനാധ്വാനവും, പരാതിയില്ലാതെ ദിവസങ്ങളോളം കനത്ത ഭാരം വഹിക്കാൻ കഴിവുള്ളതും ആയതിനാൽ, അതേ ജോലി ഒരു പുതിയ ഭാഷയുടെ ഭാരവുമായി സാമ്യമുള്ളതാണ്. ഗുരുതരവുമാണ്.

പുതിയ ഭാഷയെ പല ഉപയോക്താക്കളും ഉടനടി അഭിനന്ദിച്ചതിന് നിരവധി കാരണങ്ങളുണ്ട്. UNIX സിസ്റ്റം ഉപയോഗിക്കുന്ന ഏതൊരാൾക്കും ഇവിടെ ക്രമീകരണങ്ങൾ പ്രത്യേക ഫയലുകൾ വഴിയാണ് നിർമ്മിച്ചിരിക്കുന്നത് എന്ന് അറിയാം - സാധാരണ ടെക്സ്റ്റ് ഫയലുകൾ, കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്ത ശേഷം മാറ്റങ്ങൾ വരുത്തുന്നു. അവ ഒരു പ്രത്യേക ഷെൽ ഭാഷയിൽ എഴുതുകയും കമാൻഡ് ലൈനിൽ നിന്ന് നടപ്പിലാക്കുകയും ചെയ്യുന്നു.

ഇന്റർപ്രെറ്റർ കമാൻഡുകൾ വരച്ച് സംഭരിച്ചുകൊണ്ട് ഇഷ്‌ടാനുസൃത കമാൻഡുകൾ സൃഷ്ടിക്കാൻ UNIX സിസ്റ്റം നിങ്ങളെ അനുവദിക്കുന്നു. അവ ടെക്‌സ്‌റ്റ് ഫയലുകളിൽ നിലനിൽക്കുകയും ആവശ്യമെങ്കിൽ എക്‌സിക്യൂട്ട് ചെയ്യുകയും ചെയ്യുന്നു സ്റ്റാൻഡേർഡ് സെറ്റ്ഓപ്പറേറ്റിംഗ് സിസ്റ്റം കമാൻഡുകൾ - കമാൻഡ് ലൈനിലൂടെ മാത്രം.

ഉപയോക്തൃ കമാൻഡുകൾ അല്ലെങ്കിൽ സ്ക്രിപ്റ്റുകൾ എന്ന് വിളിക്കുന്നു. ഒരു UNIX സിസ്റ്റത്തിൽ, ഓപ്പറേഷൻസ് അഡ്മിനിസ്ട്രേറ്റർ എഴുതണം ഒരു വലിയ സംഖ്യസ്ക്രിപ്റ്റുകൾ, അതാകട്ടെ, തുടർന്നുള്ള സ്ക്രിപ്റ്റുകൾ പ്രോസസ്സ് ചെയ്യുന്നു, അതായത് പ്രത്യേക പ്രോഗ്രാമുകൾ ഉപയോഗിച്ച് ടെക്സ്റ്റ് ഫയലുകൾ:

  • Awk.ഈ സാമ്പിളുകളുമായി താരതമ്യം ചെയ്യുന്നത് പ്രോഗ്രാം സാധ്യമാക്കുകയും ഒരു റിപ്പോർട്ട് ജനറേറ്ററായി പ്രവർത്തിക്കുകയും ചെയ്യുന്നു.
  • സെഡ്.ടെക്സ്റ്റ് ഫയലുകളുടെ ബാച്ച് എഡിറ്ററായി പ്രവർത്തിക്കുന്നു.

പ്രോഗ്രാമുകൾ ഇൻപുട്ട് ഫയലുകളുടെ വരികൾ ഓരോന്നായി ഫിൽട്ടറുകളായി വായിക്കുന്നു. പ്രോഗ്രാം കമാൻഡുകളാൽ നിർണ്ണയിക്കപ്പെടുന്ന സ്ട്രിംഗിന് ബാധകമായ പ്രവർത്തനങ്ങൾ അവർ നിർവഹിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ചില പാറ്റേണുകൾക്കനുസരിച്ച് പ്രതീകങ്ങളുടെ ഒരു ശൃംഖല തിരഞ്ഞെടുത്തു, അതിനനുസരിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു നിയമങ്ങൾ സ്ഥാപിച്ചു, പുതിയ ഫയലുകൾ സൃഷ്ടിക്കപ്പെടുന്നു.

വലിയ അവസരങ്ങൾ

പുതിയ പ്രോഗ്രാമിംഗ് ഭാഷയായ പേൾ ടെക്‌സ്‌റ്റും സ്ഥിരതയുള്ള എക്‌സ്‌പ്രഷനുകളും പ്രോസസ്സ് ചെയ്യേണ്ട സന്ദർഭങ്ങളിൽ വളരെ സമ്പന്നമായ സാധ്യതകൾ തുറന്നു. Perl-ന് നിരവധി ഹെൽപ്പർ മൊഡ്യൂളുകൾ ഉണ്ട്.

കാലക്രമേണ ഇത് അതുല്യമായ ഭാഷഉപയോക്താക്കൾക്കായി നെറ്റ്‌വർക്ക് പ്രോഗ്രാമിംഗോ ഗ്രാഫിക്സോ ആവശ്യമാണെങ്കിൽ, അതിന്റെ അതിരുകൾ വിപുലീകരിച്ചു, ഇപ്പോൾ വെബ് വികസനത്തിലും ഗെയിമുകളിലും വ്യാപകമായി ഉപയോഗിക്കുന്നു.

ഈ ഭാഷ അതിന്റെ ഉപയോഗത്തിന്റെ ലാളിത്യം കൊണ്ട് പിടിക്കപ്പെടുകയും ഇഷ്ടപ്പെടുകയും ചെയ്തു; ഇത് ഇപ്പോൾ ഏറ്റവും ചലനാത്മകമായ പ്രോഗ്രാമിംഗ് ഭാഷയായി അംഗീകരിക്കപ്പെട്ടിരിക്കുന്നു. ഫങ്ഷണൽ, പ്രൊസീജറൽ, മറ്റുള്ളവ എന്നിങ്ങനെയുള്ള ശൈലികൾ ഉൾപ്പെടുന്ന വിവിധ മാതൃകകളെ ഇത് പിന്തുണയ്ക്കുന്നു, ഇതിന് മെമ്മറി നിയന്ത്രണമുണ്ട്, ടെക്സ്റ്റ് പ്രോസസ്സിംഗിനുള്ള പിന്തുണയും ഉണ്ട്.

ലളിതമായ കാര്യങ്ങൾ ലളിതമായി തുടരാം, എന്നാൽ സങ്കീർണ്ണമായ കാര്യങ്ങൾ ചെയ്യണം എന്ന് എൽ.വാളിന്റെ മുദ്രാവാക്യങ്ങളിലൊന്ന് പറയുന്നത് വെറുതെയല്ല.

അസൈൻമെന്റ് എക്‌സ്‌പ്രഷനുകൾ, കോഡ് ബ്ലോക്കുകൾ, നിയന്ത്രണ ഘടനകൾ, ഫംഗ്‌ഷനുകൾ എന്നിവ മനസ്സിലാക്കിയാൽ ഭാഷയിൽ പ്രാവീണ്യം നേടുന്നത് എളുപ്പമാണ്.

മറ്റ് ഭാഷകളുമായുള്ള സാമ്യം

മറ്റ് പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ നിന്ന് ലാറി ധാരാളം കടമെടുത്തു. ഉദാഹരണത്തിന്:

  • UNIX ഷെല്ലുകൾ.വേരിയബിളുകൾ മുൻനിര പ്രതീകങ്ങളാൽ അടയാളപ്പെടുത്തിയിരിക്കുന്നു, അവ വേരിയബിളിന്റെ തരം വ്യക്തമായി പ്രകടിപ്പിക്കുകയും ഈ വേരിയബിളുകൾ സ്ട്രിംഗുകളിൽ ഇന്റർപോളേറ്റ് ചെയ്യാൻ സഹായിക്കുകയും ചെയ്യുന്നു. ബിൽറ്റ്-ഇൻ ഫംഗ്ഷനുകൾ ഇൻസ്ട്രുമെന്റേഷൻ നൽകുന്നു, ഇത് ഷെൽ പ്രോഗ്രാം ചെയ്യാൻ ഉപയോഗിക്കുന്നു.
  • Lisp-ൽ നിന്നുള്ള അറേകൾ.
  • awk-ൽ നിന്നുള്ള Perl റെഗുലർ എക്സ്പ്രഷനുകൾ ഉപയോഗിക്കുന്നു, അതേ സമയം അവനിൽ നിന്ന് അനുബന്ധ രൂപങ്ങൾ കടം വാങ്ങുന്നു.
  • സെഡ് മുതൽ.

എന്നാൽ പുതിയ ഭാഷ അതിന്റേതായ ജോലികൾ വളരെ വേഗത്തിൽ കൈകാര്യം ചെയ്തു, അതിനാൽ സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് മാത്രമല്ല അവർ ഇത് ഉപയോഗിക്കാൻ തുടങ്ങിയത്.

ജി. സ്പെൻസറിൽ നിന്ന് വാൾ ഒരു പാക്കേജ് സ്വീകരിച്ചു, അത് അവനെ മാസ്റ്റർ ചെയ്യാൻ സഹായിച്ചു പേൾ പതിവ്പദപ്രയോഗങ്ങൾ, നിങ്ങളുടെ സൃഷ്‌ടിക്കനുസൃതമായി അത് പരിഷ്‌ക്കരിക്കുന്നു. വികസിപ്പിച്ച സവിശേഷതകളിൽ പലതും ലാറിയുടെ മാത്രം കാരണമല്ല. സഹപ്രവർത്തകരും സുഹൃത്തുക്കളും ഉത്സാഹത്തോടെ കൊണ്ടുവരാൻ ശ്രമിച്ചു അതുല്യമായ പ്രോഗ്രാംനിങ്ങളുടെ പുതുമകൾ. ഇൻറർനെറ്റിൽ ഭാഷ പ്രത്യക്ഷപ്പെട്ടപ്പോൾ, സമാന ചിന്താഗതിക്കാരായ ഒരു സമൂഹം രൂപപ്പെട്ടു, അവർ അത് മെച്ചപ്പെടുത്താൻ സഹായിച്ചു. അതിനുശേഷം, സ്ഥിതിവിവരക്കണക്കുകൾ പ്രകാരം, 10,000-ത്തിലധികം പ്രോഗ്രാമർമാർ ഈ പ്രവർത്തനത്തിൽ ഏർപ്പെട്ടിട്ടുണ്ട്.

എന്നിരുന്നാലും, വിവരങ്ങളുമായി ബന്ധപ്പെട്ട സാങ്കേതികവിദ്യകൾ വികസിപ്പിക്കുന്നതിന് ഭാഷയുടെ പുതിയ ആപ്ലിക്കേഷനുകൾ നടപ്പിലാക്കുന്നതിൽ വിജയകരമായി ഉപയോഗിക്കുന്ന പാക്കേജുകളുടെ വികസനത്തിന് നന്ദി, ഭാഷ ഇപ്പോഴും മെച്ചപ്പെടുത്തിക്കൊണ്ടിരിക്കുകയാണ്.

വികസനത്തിന്റെ ഘട്ടങ്ങൾ

യാത്രയുടെ ചെറുതും എന്നാൽ പ്രധാനപ്പെട്ടതുമായ ഘട്ടങ്ങൾ പട്ടികയിൽ ഹൈലൈറ്റ് ചെയ്യാം.

പുറത്തിറക്കിയ പതിപ്പുകൾ

സൃഷ്ടിയുടെ സമയം

perl 1. നിരവധി സവിശേഷതകൾ അടങ്ങിയിട്ടില്ല. പാറ്റേണുകൾ ഉപയോഗിച്ച് ഫയലുകൾ തിരയാനുള്ള എളുപ്പവഴി ഇതായിരുന്നു. എന്നാൽ ഫയൽ ഡിസ്ക്രിപ്റ്ററുകളും ഫോർമാറ്റുകളും സ്കെയിലർ വേരിയബിളുകളും ഉണ്ടായിരുന്നു.

1988 ജനുവരി.

perl 2. ഇതുവരെ മെച്ചപ്പെടാത്ത ഒരു റെഗുലർ എക്സ്പ്രഷൻ മെക്കാനിസം പ്രത്യക്ഷപ്പെട്ടു.

1988 ജൂൺ.

perl 3. ബൈനറി ഡാറ്റ സ്ട്രീമുകൾ പ്രോസസ്സ് ചെയ്യാനുള്ള കഴിവ് ഡെവലപ്പർമാർ നേടിയിട്ടുണ്ട്.

1989 ഒക്ടോബർ.

perl 4. പ്രത്യക്ഷപ്പെട്ടത് പ്രധാനമായും പ്രസിദ്ധീകരിച്ച പുസ്തകത്തിന് നന്ദി, “പ്രോഗ്രാമിംഗ് പേൾ", എന്നാൽ "ഒട്ടക പുസ്തകം" എന്ന പേരിൽ അറിയപ്പെടുന്നു. പുതിയ ഭാഷ രേഖപ്പെടുത്തി. ഈ കാലയളവ് റിലീസുകളുടെ ഒരു മുഴുവൻ ശ്രേണിയിലൂടെ കടന്നുപോയി, ഒടുവിൽ പതിപ്പ് 4.036-ൽ സ്ഥിരതാമസമാക്കി. അത് ഇതിനകം 1993 ആയിരുന്നു. തുടർന്ന് അടുത്ത - വി - പതിപ്പിന്റെ ജോലി ആരംഭിച്ചു.

1991 മാർച്ച്.

perl 5. സങ്കീർണ്ണമായ ഡാറ്റ തരങ്ങൾക്കുള്ള പിന്തുണ ചേർത്തു, ഒബ്ജക്റ്റ് മോഡൽ, റഫറൻസുകൾ, പാക്കേജുകൾ, ഒരു ക്ലോഷർ എന്നിവ ഒരു മൂല്യമായി ഉൾപ്പെടുന്നു. ഒരു മെയിലിംഗ് ലിസ്റ്റ് സൃഷ്‌ടിച്ചതിനാൽ ജോലി ഏകോപിപ്പിക്കാനാകും വ്യത്യസ്ത പ്ലാറ്റ്ഫോമുകൾ. വാസ്തവത്തിൽ, വികസനം, പോർട്ടിംഗ്, മെയിന്റനൻസ് എന്നിവയുടെ പ്രധാന ഫോറമായി ഇത് മാറി. മൊഡ്യൂളുകൾ ഇപ്പോൾ പതിപ്പിന്റെ ഒരു പ്രധാന ഭാഗമാണ്, കാരണം അവയ്ക്ക് ഭാഷ വികസിപ്പിക്കാൻ കഴിഞ്ഞു, പക്ഷേ വ്യാഖ്യാതാവിനെ പരിഷ്കരിക്കാതെ. ഇത് അവനെ സ്ഥിരപ്പെടുത്താൻ കഴിഞ്ഞു, പക്ഷേ അവന്റെ ഭാഷാ കഴിവുകൾ വിപുലീകരിച്ചു.

1994 ഒക്ടോബർ.

അദ്വിതീയ പേൾ - പ്രോഗ്രാമിംഗ് ഭാഷ: ഗുണവും ദോഷവും

Perl 5 സജീവമായി വികസിപ്പിച്ചുകൊണ്ടിരിക്കുന്നു, ഇപ്പോൾ പുതിയ പതിപ്പുകൾ ഉപയോഗിച്ച് അപ്ഡേറ്റ് ചെയ്യുന്നു. എന്നാൽ എല്ലാ സംഭവവികാസങ്ങൾക്കും പൊതുവായ നിരവധി ഘടകങ്ങളുണ്ട്: ഓട്ടോമാറ്റിക് ഡാറ്റ ടൈപ്പിംഗ് നടത്തുന്നു, മെമ്മറി സ്വയമേവ നിയന്ത്രിക്കപ്പെടുന്നു.

വ്യാഖ്യാതാവിന് നന്ദി, തരങ്ങൾ മാത്രമല്ല, ഓരോ പ്രോഗ്രാം ഒബ്‌ജക്റ്റിന്റെയും മെമ്മറി ആവശ്യകതകളും അറിയാം, കൂടാതെ റഫറൻസുകൾ കണക്കാക്കുമ്പോൾ മെമ്മറി അനുവദിക്കാനും സ്വതന്ത്രമാക്കാനും ഇതിന് ബുദ്ധിമുട്ടില്ല.

പേൾ പ്രോഗ്രാമിംഗ് വ്യാഖ്യാതാവിനെ മറ്റുള്ളവരിൽ നിന്ന് വേർതിരിക്കുന്നു എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. പ്രോഗ്രാമിന്റെ ഇന്റർമീഡിയറ്റ് ബൈറ്റ്കോഡിലേക്കുള്ള വിവർത്തനമാണ് ഇതിന്റെ തെളിവ്, അതിനുശേഷം മാത്രമേ അത് എക്സിക്യൂട്ട് ചെയ്യാൻ തുടങ്ങുകയുള്ളൂ. താരതമ്യപ്പെടുത്തുമ്പോൾ: പരമ്പരാഗതമായത് അൽപ്പം വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു - നൽകിയ ഓപ്പറേറ്റർ തൽക്ഷണം വ്യാഖ്യാനിക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യുന്നു, ഇത് വർക്ക്ഫ്ലോ സമയത്ത് വാക്യഘടന പിശകുകൾ നിറഞ്ഞതാണ്. വാങ്ങൽ കോഡിലേക്കുള്ള വിവർത്തന സമയത്ത് ഇത്തരത്തിലുള്ള പിശകുകൾ കണ്ടുപിടിക്കാൻ Perl നിങ്ങളെ അനുവദിക്കുന്നു.

ഒരു തരം ഡാറ്റ മറ്റൊന്നിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് ഇത് ആവശ്യമാണ് യാന്ത്രിക പ്രക്രിയ, ഏതെങ്കിലും തരത്തിലുള്ള ഡാറ്റയുടെ വിവർത്തനം അസാധ്യമാണെങ്കിൽ, ഇത് മാരകമായ പിശകിലേക്ക് നയിച്ചേക്കാം.

5004 പതിപ്പിന്റെ മെറിറ്റ്, ഒരു യൂണിവേഴ്സൽ പാക്കേജ് ഉണ്ട്, അത് ഭാഷയ്ക്ക് ഒരു പ്രധാന വസ്തു നൽകി, എല്ലാ ക്ലാസുകളും അതിൽ നിന്ന് ഉരുത്തിരിഞ്ഞതാണ് - ഒരു ഓട്ടോമാറ്റിക് അടിസ്ഥാനത്തിൽ. മൊഡ്യൂളുകളുടെ പതിപ്പ് അഭ്യർത്ഥിക്കാൻ ഇപ്പോൾ സാധ്യമാണ്. മൊഡ്യൂളുകളുടെ പതിപ്പ് അഭ്യർത്ഥിക്കുന്നതിനെ പിന്തുണയ്ക്കുന്നത് ഒരു യാഥാർത്ഥ്യമായി. ഇതുകൂടാതെ, മൈക്രോസോഫ്റ്റ് വിൻഡോസ് ഉൾപ്പെടെ നിരവധി ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളെ perl പിന്തുണയ്ക്കാൻ തുടങ്ങി.

1998-ൽ പുറത്തിറങ്ങിയ പതിപ്പ് 5.005, റെഗുലർ എക്‌സ്‌പ്രഷൻ പ്രോസസറിന്റെ ഗുണനിലവാരം ഗണ്യമായി മെച്ചപ്പെടുത്തി, ബാക്കെൻഡിലെ പുതിയ കൊളുത്തുകൾ മെച്ചപ്പെടുത്തി, അത് ചില മൊഡ്യൂളുകളുടെ സഹായത്തോടെ പരിഹരിച്ചു, കൂടാതെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കുള്ള പിന്തുണ വിപുലീകരിച്ചു.

ഏറ്റവും പുതിയ അപ്ഡേറ്റുകൾ

രണ്ടായിരം വർഷം ലോകത്തിന് പേൾ ഭാഷയുടെ പുതിയ, 5.6 പതിപ്പ് നൽകി. ഇത് ഇതിനകം തന്നെ ആദ്യത്തേതിനേക്കാൾ കൂടുതൽ ദൃഢമായി കാണപ്പെട്ടു, 64-ബിറ്റ് സിസ്റ്റങ്ങൾ ഉണ്ടായിരുന്നു, രണ്ട് ജിബിയിൽ കൂടുതലുള്ള ഫയലുകളെ പിന്തുണയ്ക്കാൻ കഴിഞ്ഞു, സ്ട്രിംഗ് പ്രാതിനിധ്യം ഉൾപ്പെടുന്നു, യൂണികോഡ് സ്റ്റാൻഡേർഡും കീവേഡും കണക്കിലെടുക്കുന്നു - ഞങ്ങളുടെ. ഈ കാലയളവിൽ, മറ്റ് ഓപ്പൺ സോഴ്‌സ് പ്രോജക്‌റ്റുകൾക്ക് സമാനമായി പതിപ്പ് നാമകരണ പദ്ധതി മാറുന്നു.

രസകരമായ ഒരു വസ്തുത ഈ തീരുമാനമാണ്: ഒരു പതിപ്പ് വികസിപ്പിച്ചുകൊണ്ടിരിക്കുകയാണെങ്കിൽ, അതിന് ഒറ്റ സംഖ്യകളുള്ള ഒരു സംഖ്യ നൽകും, സ്ഥിരതയുള്ളതിന് ഇരട്ട സംഖ്യ ലഭിക്കും.

കൂടുതൽ വിപുലമായ പതിപ്പ് സൃഷ്ടിക്കുന്നതിനുള്ള നിർദ്ദേശങ്ങൾ നൽകാൻ വാൾ തന്റെ അനുയായികളോട് ആവശ്യപ്പെട്ടു. അവന്റെ കോൾ കേട്ടു, ഫലം 361 പ്രമാണങ്ങൾ ആയിരുന്നു, ഇത് പതിപ്പ് VI വികസിപ്പിക്കാൻ സഹായിച്ചു. ഉപയോക്താക്കൾക്ക് ഒരു സംഗ്രഹവുമായി സാമ്യമുള്ള ഒരു പ്രമാണം അവതരിപ്പിച്ചു, ഈ പതിപ്പ് നിലവിലുണ്ടായിരുന്നു, പക്ഷേ ഭാഷയുടെ വിവരണത്തിന്റെ രൂപത്തിൽ മാത്രം. നിരവധി പ്രമാണങ്ങൾ ഈ പതിപ്പിന്റെ സ്പെസിഫിക്കേഷനായി മാറി. 2006-ൽ വേർഷൻ VI ഇന്റർപ്രെറ്റർ പുറത്തിറക്കാനുള്ള ശ്രമം നിർത്തിവച്ചു. എന്നാൽ 2009 മുതൽ, Rakudo Perl എന്ന പേരിൽ, ഈ പതിപ്പ് ജീവിക്കുകയും കാലാനുസൃതമായി അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു.

Perl 5.11 പുറത്തിറങ്ങിയതോടെ Perl 5 വികസന പ്രക്രിയയിൽ കാര്യമായ മാറ്റം സംഭവിച്ചു. ഡെവലപ്പർ കമ്മ്യൂണിറ്റി പ്രതിമാസ റിലീസ് സൈക്കിളിലേക്ക് നീങ്ങി, റിലീസ് തീയതികൾ മൂന്ന് മാസം മുമ്പ് ആസൂത്രണം ചെയ്തിട്ടുണ്ട്.

ഒരു പുതിയ പതിപ്പ്

പതിപ്പ് 5.8 2002 ൽ പ്രത്യക്ഷപ്പെട്ടു. അന്നുമുതൽ 2008 വരെ ഇത് വർഷം തോറും അപ്‌ഡേറ്റ് ചെയ്യപ്പെട്ടു, ഇത് യൂണിക്കോഡ് പിന്തുണ ഗണ്യമായി മെച്ചപ്പെടുത്തി, മൾട്ടിത്രെഡിംഗ് പിന്തുണ, യഥാർത്ഥ I/O നടപ്പിലാക്കൽ, സംഖ്യാ കൃത്യത എന്നിവ ഉൾപ്പെടുന്ന നിരവധി ഫംഗ്ഷനുകൾ ചേർത്തു. വീണ്ടും, പുതിയ മൊഡ്യൂളുകൾ പ്രത്യക്ഷപ്പെട്ടു.

ഒരു പൊതു-ഉദ്ദേശ്യ പ്രോഗ്രാമിംഗ് ഭാഷ സൃഷ്ടിച്ചതിന്റെ 20-ാം വാർഷികത്തിൽ, "5.10.0" എന്ന പുതിയ പതിപ്പ് ഉപയോക്താക്കളെ ഒരിക്കൽ കൂടി നിരാശപ്പെടുത്തിയില്ല. പുതിയ ഓപ്പറേറ്റർമാർ പ്രത്യക്ഷപ്പെട്ടു, അതുപോലെ "സ്മാർട്ട്" പൊരുത്തങ്ങൾ, പതിവ് എക്സ്പ്രഷനുകൾ അപ്ഡേറ്റ് ചെയ്തു.

കഴിഞ്ഞ വർഷത്തെ ജോലി എന്താണ് കൊണ്ടുവന്നത്?

എല്ലാ വർഷവും, പുതിയ മെച്ചപ്പെടുത്തലുകൾ വാൾ കണ്ടുപിടിച്ച ഭാഷ എളുപ്പവും ലളിതവും കൂടുതൽ ആക്സസ് ചെയ്യാവുന്നതുമാക്കാൻ സഹായിച്ചു. പേൾ ഭാഷയുടെ വാക്യഘടനയ്ക്ക് പാക്കേജ് NAME VERSION, റെഗുലർ എക്സ്പ്രഷനുകൾക്കുള്ള പിന്തുണ ലഭിച്ചു എന്ന വസ്തുതയാൽ 2010 അടയാളപ്പെടുത്തി; തുടർന്നുള്ള വർഷങ്ങളിൽ, മൊഡ്യൂളുകൾ അപ്‌ഡേറ്റ് ചെയ്യുകയും ഓപ്പറേറ്റർമാർക്കുള്ള പിന്തുണ വിപുലീകരിക്കുകയും ചെയ്തു.

ലക്ഷ്യം കൈവരിച്ചു - റൺടൈമിൽ അനുകരിക്കേണ്ട പതിപ്പ് സൂചിപ്പിക്കുക, അതായത് perl അപ്‌ഡേറ്റ് ചെയ്യാൻ അനുവദിക്കുക, എന്നാൽ അതേ സമയം ഉപയോഗിച്ച സ്‌ക്രിപ്റ്റുകളുടെ പ്രവർത്തന ശേഷി നഷ്‌ടപ്പെടുത്താതിരിക്കുക, ഇത് പൊരുത്തക്കേടിന്റെ ഭീഷണി ഉയർത്തുന്നു. പുതിയ പതിപ്പ് അവതരിപ്പിച്ചു. അത് ആയി കൂടുതൽ സവിശേഷതകൾ, സുരക്ഷ വർദ്ധിപ്പിച്ചു.

മെയ് അവസാനം, അടുത്തിടെ, അടുത്ത പതിപ്പ് പ്രത്യക്ഷപ്പെട്ടു, എല്ലായ്പ്പോഴും എന്നപോലെ, കൂടുതൽ മെച്ചപ്പെട്ടതും ഉപയോഗിക്കാൻ എളുപ്പവുമാണ്. ഇന്ന്, ആർക്കും ഇത് പരീക്ഷിക്കാനും ഈ പ്രോഗ്രാമിംഗ് ഭാഷ സൃഷ്ടിക്കുന്നതിന് വളരെയധികം ജോലികൾ ചെയ്തിട്ടുണ്ടെന്ന് അവരുടെ സ്വന്തം അനുഭവത്തിൽ നിന്ന് കാണാനും കഴിയും.

ഈ പേൾ ഭാഷയിൽ, അറേകൾ പരിമിതമല്ല. ഭാഷ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് പാരമ്പര്യേതര ജോലികൾ പരിഹരിക്കാൻ കഴിയും, അല്ലാത്തപക്ഷം നിരവധി ആളുകൾ ആവശ്യമാണ്, അഡ്മിനിസ്ട്രേറ്റീവ് ജോലികൾ ചെയ്യുക, ഉയർന്ന നിലവാരമുള്ള ടെക്സ്റ്റ് ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുക, കൂടാതെ എല്ലാ പ്രശ്നങ്ങൾക്കും കൂടുതൽ സമയം ചെലവഴിക്കില്ല. പുതിയ പ്രോഗ്രാമുകൾ വികസിപ്പിക്കുന്നതിലൂടെ, ഒരു ചിഹ്ന പട്ടിക ഉപയോഗിച്ച്, ആവശ്യമായ ഓപ്പറേറ്റർമാരെ ഉപയോഗിച്ച്, ഫലം കൃത്യവും വേഗത്തിലുള്ളതുമായിരിക്കും.

തങ്ങളുടെ കരകൗശല തത്പരർക്ക് അസാധ്യമായി ഒന്നുമില്ലെന്ന് ഈ ലേഖനം ഒരിക്കൽ കൂടി തെളിയിച്ചു. ചിലപ്പോൾ ചെറിയ പ്രശ്‌നങ്ങൾ പോലും ഇതിലേക്ക് നയിക്കുന്നു ഉപയോഗപ്രദമായ കണ്ടെത്തലുകൾ, ഇത് നമ്മുടെ ജീവിതം അൽപ്പം എളുപ്പമാക്കും.

പേൾ പഠിക്കാൻ ആഗ്രഹിക്കുന്ന രണ്ട് പേരെയെങ്കിലും എനിക്കറിയാം. അവർക്കായി പ്രത്യേകം ഈ പോസ്റ്റ് എഴുതാൻ ഞാൻ തീരുമാനിച്ചു.

  • ഭാഗം 1: വേരിയബിൾ തരങ്ങൾ (നിങ്ങൾ ഈ ഭാഗം വായിക്കുന്നു)

നിങ്ങൾ അവിടെ ഉദാഹരണങ്ങൾ കണ്ടെത്തും ലളിതമായ പ്രോഗ്രാമുകൾ"1 മുതൽ 5 വരെയുള്ള സംഖ്യകൾ അച്ചടിക്കുക" എന്ന പരമ്പരയിൽ നിന്നും മറ്റും. ഉദാഹരണങ്ങളിൽ നിന്ന് പഠിക്കാൻ ഞാൻ എപ്പോഴും ഇഷ്ടപ്പെടുന്നു - ഇത് പുസ്തകങ്ങളിൽ നിന്നോ സെമിനാറുകളിൽ നിന്നോ ഉള്ളതിനേക്കാൾ രസകരവും വേഗതയുള്ളതുമാണ്. നിങ്ങൾക്ക് ഈ ബ്ലോഗിലെ പോസ്റ്റുകൾ നോക്കാനും കഴിയും - കൂടുതൽ ഉദാഹരണങ്ങൾ അവിടെ കണ്ടെത്താനുള്ള സാധ്യതയുണ്ട്.

സ്കൂളിൽ/ഇൻസ്റ്റിറ്റ്യൂട്ടിൽ നിങ്ങൾ പാസ്കൽ/ഡെൽഫി, സി അല്ലെങ്കിൽ കുറഞ്ഞത് ബേസിക് പഠിച്ചിട്ടുണ്ടെന്ന് ഞാൻ അനുമാനിക്കുന്നു, കൂടാതെ ഒരു ഫംഗ്ഷനും ലൂപ്പുകളും എന്താണെന്ന് വിശദീകരിക്കേണ്ട ആവശ്യമില്ല. ഇത് അങ്ങനെയല്ലെങ്കിൽ, കുഴപ്പമില്ല, അത് മനസ്സിലാക്കാൻ നിങ്ങൾ വിക്കിപീഡിയ വായിക്കാൻ അധിക സമയം ചെലവഴിക്കേണ്ടിവരും. നിങ്ങൾക്ക് ഒരു ബാഷ് സ്‌ക്രിപ്റ്റ് എങ്ങനെ പ്രവർത്തിപ്പിക്കണമെന്ന് അറിയില്ലെങ്കിൽ, അല്ലെങ്കിൽ എന്തിനാണ് സ്‌ക്രിപ്റ്റിന്റെ ആദ്യ വരിയിൽ നിങ്ങൾ ഇതുപോലെ എന്തെങ്കിലും എഴുതേണ്ടത് #!/bin/sh, കണ്ടെത്തുന്നതിന് നിങ്ങൾ കുറച്ച് ഗൂഗിൾ ചെയ്യേണ്ടതുണ്ട്.

പ്രത്യേകിച്ച് “Perl വളരെ സങ്കീർണ്ണമാണ് എന്നത് ശരിയാണോ”, “Perl-നെ കുറിച്ചുള്ള ഏതൊക്കെ പുസ്തകങ്ങൾ നിങ്ങൾക്ക് ശുപാർശ ചെയ്യാൻ കഴിയും” കൂടാതെ “ഓ... ഇപ്പോഴും അതിൽ എഴുതിയിട്ടുണ്ടോ?” എന്നീ ചോദ്യങ്ങളിൽ താൽപ്പര്യമുള്ളവർക്ക്, ഞാൻ ഒരു മിനി- എഴുതി. നിങ്ങൾക്ക് HabraHabr-ൽ വായിക്കാൻ കഴിയുന്ന Perl-ലെ പതിവുചോദ്യങ്ങൾ. ഉള്ളവർക്കും പല അക്ഷരങ്ങളും ബലപ്പെടുത്തിയില്ലഅതിന്റെ ഒരു ഹ്രസ്വ സംഗ്രഹം ഞാൻ ഇവിടെ നൽകും:

  • പേൾ ഒരു ആധുനിക പ്രോഗ്രാമിംഗ് ഭാഷയാണ്, അത് എഴുതപ്പെട്ടതും വളരെക്കാലം എഴുതിക്കൊണ്ടിരിക്കുന്നതുമാണ്.
  • മറ്റേതൊരു പ്രോഗ്രാമിംഗ് ഭാഷയെയും പോലെ പേളിനും അതിന്റെ ഗുണങ്ങളും ദോഷങ്ങളും പ്രയോഗങ്ങളുമുണ്ട്. നിലവിലുണ്ട് ശരിക്കും വലിയ 5+ ഉപയോഗിച്ച് പേൾ പരിഹരിക്കുന്ന പ്രശ്നങ്ങളുടെ ക്ലാസ്.
  • C++ അല്ലെങ്കിൽ Java വാക്യഘടനയെക്കാൾ സങ്കീർണ്ണമല്ല Perl വാക്യഘടന. ഈ പോസ്റ്റ് അവസാനം വരെ വായിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഇത് സ്ഥിരീകരിക്കാൻ കഴിയും.
  • നല്ലതും എന്നാൽ ചെലവുകുറഞ്ഞതുമായ Perl ട്യൂട്ടോറിയലുകൾ ഉണ്ട്. നിങ്ങളുടെ മാതൃഭാഷ സംസാരിക്കുന്ന പേൾ പ്രോഗ്രാമർമാരുടെ ഒരു കമ്മ്യൂണിറ്റിയെ ഓൺലൈനിൽ എളുപ്പത്തിൽ കണ്ടെത്താനാകും.
  • രണ്ട് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും പേൾ നന്നായി പ്രവർത്തിക്കുന്നു UNIX കുടുംബം, കൂടാതെ ഈവിൾ വിൻഡോസിന് കീഴിൽ.

കൂട്ടിച്ചേർക്കൽ: Perl vs Python vs Ruby vs PHP, പ്രീസ്റ്റ്സ് ഓഫ് പ്രോഗ്രാമിംഗ് എന്നീ ലേഖനങ്ങൾ വായിക്കാനും ഞാൻ ശുപാർശ ചെയ്യുന്നു. ആദ്യത്തേത് വിവിധ സ്ക്രിപ്റ്റിംഗ് ഭാഷകളുടെ പ്രകടനത്തെക്കുറിച്ച് സംസാരിക്കുന്നു, രണ്ടാമത്തേത് സംസാരിക്കുന്നു PHP വ്യത്യാസങ്ങൾമറ്റ് ഭാഷകളിൽ നിന്ന്. പൈത്തൺ ആരാധകർക്കായി, പൈത്തൺ സ്ക്രിപ്റ്റ് പെർഫോമൻസ് ടെസ്റ്റ് എന്ന ലേഖനം വായിക്കാൻ ഞാൻ നിങ്ങളെ ഉപദേശിക്കുന്നു. "Perl-നെ കുറിച്ച് എന്താണ് നല്ലത്" എന്ന ചോദ്യത്തിനുള്ള ഉത്തരം കണ്ടെത്താൻ ഈ മെറ്റീരിയലുകൾ നിങ്ങളെ സഹായിക്കുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു.

ഹലോ %ഉപയോക്തൃനാമം%!

അതിനാൽ, നമുക്ക് നമ്മുടെ ആദ്യത്തെ പേൾ സ്ക്രിപ്റ്റ് എഴുതാം!

#!/usr/bin/perl

$പേര് = shift() ;
പ്രിന്റ് ("ഹലോ, $പേര്! \n") ;

നമുക്ക് സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാം:

$ chmod u+x 1 .pl
$ ./ 1 .pl afiskon
നമസ്കാരം afiskon !

ഇവിടെ എല്ലാം വളരെ ലളിതമാണ്:

  • സ്കെയിലർ വേരിയബിളുകളുടെ പേരുകൾ (അതായത്, അറേകളോ ഹാഷുകളോ അല്ല, അവ എന്തൊക്കെയാണ് - ചുവടെ കാണുക) ഒരു ഡോളർ ചിഹ്നത്തിൽ തുടങ്ങുന്നു.
  • ഷിഫ്റ്റ് ഫംഗ്ഷൻ അടുത്ത സ്ക്രിപ്റ്റ് ആർഗ്യുമെന്റ് നൽകുന്നു. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഷിഫ്റ്റിലേക്കുള്ള ആദ്യ കോൾ () ആദ്യ ആർഗ്യുമെന്റ് നൽകുന്നു, രണ്ടാമത്തെ കോൾ രണ്ടാമത്തെ ആർഗ്യുമെന്റ് നൽകുന്നു, അങ്ങനെ പലതും.
  • പ്രിന്റ്() ഫംഗ്ഷൻ ഒരു ആർഗ്യുമെന്റായി പാസ്സാക്കിയ സ്ട്രിംഗ് പ്രിന്റ് ചെയ്യുന്നു.
  • നിങ്ങൾക്ക് വരിയിലേക്ക് വേരിയബിൾ മൂല്യങ്ങൾ മാറ്റിസ്ഥാപിക്കാം (ലൈൻ 4 കാണുക). സ്ട്രിംഗുകളെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, താഴെ കാണുക.

ഇത് ഇതുവരെ വ്യക്തമായിട്ടില്ലെങ്കിൽ, അത് ശരിയാണ്. ഒരുപക്ഷേ ഒരു ചെറിയ സിദ്ധാന്തം കുറച്ചുകൂടി വ്യക്തത കൊണ്ടുവരും.

വേരിയബിൾ തരങ്ങൾ

പേളിൽ മൂന്ന് പ്രധാന തരം വേരിയബിളുകൾ ഉണ്ട്: സ്കെയിലറുകൾ(അക്കങ്ങളും സ്ട്രിംഗുകളും), അറേകൾ- പാസ്കലിലോ സിയിലോ ഉപയോഗിച്ചതിന് സമാനമാണ് (ചിലപ്പോൾ അറേകളെ വെക്‌ടറുകൾ എന്നും വിളിക്കുന്നു), കൂടാതെ ഹാഷുകൾ(അസോസിയേറ്റീവ് അറേകൾ).

സ്കെയിലറുകൾമുമ്പത്തെ ഉദാഹരണത്തിൽ ഞങ്ങൾ ഇതിനകം ഉപയോഗിച്ചു. സ്കെയിലറുകൾ വ്യക്തമാക്കുന്നതിനുള്ള ചില ഉദാഹരണങ്ങൾ ഇതാ.

#!/usr/bin/perl

$a = 123 ;
$b = - 7.496 ;
$c = 0xABC; # 2748 ന് തുല്യമാണ്, അതെ, ഇതൊരു അഭിപ്രായമാണ് :)
$d = ($a + $b) / $c ;
$d *= $a ; # $d = $d * $a പോലെ തന്നെ;

$str1 = "ഹലോ" ;
$str2 = "$str1, ലോകം" ; # $str2-ൽ "ഹലോ, വേൾഡ്" അടങ്ങിയിരിക്കുന്നു
$str3 = $a . " \n". $str2 ;
$str4 = "$str1" ; # $str4-ൽ "$str1" അടങ്ങിയിരിക്കുന്നു, "ഹലോ" അല്ല

ഇവിടെ നമ്മൾ പോസിറ്റീവ്, നെഗറ്റീവ്, പൂർണ്ണസംഖ്യ, ഫ്രാക്ഷണൽ സംഖ്യകൾ സജ്ജീകരിക്കുന്നു, ഹെക്സാഡെസിമൽ എൻകോഡിംഗിൽ ഒരു സംഖ്യ സജ്ജീകരിക്കുന്നു, കൂട്ടിച്ചേർക്കുക, ഗുണിക്കുക, ഹരിക്കുക - എല്ലാം C അല്ലെങ്കിൽ Java പോലെ. മേൽപ്പറഞ്ഞ പ്രവർത്തനങ്ങൾക്ക് പുറമേ, എക്‌സ്‌പോണൻഷ്യേഷൻ പ്രവർത്തനത്തെയും പേൾ പിന്തുണയ്ക്കുന്നു:

$a = 2 ** 8 ; # ഫലം: 256

സ്ട്രിംഗുകൾ ഉപയോഗിച്ച്, എല്ലാം ചില PHP-യിലേതിന് സമാനമാണ്. ഡോട്ട് അർത്ഥമാക്കുന്നത് കോൺകാറ്റനേഷൻ ഓപ്പറേഷൻ (അതായത്, സ്ട്രിംഗുകൾ ഒരുമിച്ച് ഒട്ടിക്കുക); സ്ട്രിംഗിൽ വേരിയബിൾ പേരുകൾ ഉണ്ടെങ്കിൽ, അവയുടെ സ്ഥാനത്ത് മൂല്യങ്ങൾ പകരം വയ്ക്കുന്നു; ഒരു ബാക്ക്സ്ലാഷ് ഉപയോഗിച്ച് ചിഹ്നങ്ങൾ ചേർക്കാൻ കഴിയും പുതിയ വര(\n), ടാബുകൾ (\t), ഉദ്ധരണികൾ (\"), ബാക്ക്സ്ലാഷ് തന്നെ (\\), വേരിയബിൾ സബ്സ്റ്റിറ്റ്യൂഷൻ ഇല്ലാത്ത ഡോളർ ചിഹ്നം (\$) കൂടാതെ മറ്റു പലതും. സ്ട്രിംഗ് ഒറ്റ ഉദ്ധരണികളിലാണെങ്കിൽ, പ്രതീകങ്ങൾ അതിൽ വേരിയബിൾ സബ്സ്റ്റിറ്റ്യൂഷൻ മുതലായവ കൂടാതെ "ഉള്ളതുപോലെ" പരിഗണിക്കപ്പെടുന്നു.

PHP പോലെ, പ്രവർത്തനത്തെ ആശ്രയിച്ച് പേൾ സ്കെയിലുകളെ നമ്പറുകളോ സ്ട്രിംഗുകളോ ആയി വ്യാഖ്യാനിക്കുന്നു. ഇത് ലളിതമാണ്:

$int1 = "11" + 22 ;
# ^ "11" എന്ന സ്ട്രിംഗ് ഒരു സംഖ്യയിലേക്ക് പരിവർത്തനം ചെയ്തു,
# അതിനുശേഷം കൂട്ടിച്ചേർക്കൽ നടത്തിയാൽ, ഫലം: 33.
$str1 = "11" . 22;
# ^ നമ്പർ 22 ഒരു സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്തു,
# അതിന് ശേഷം സംയോജനം നടത്തിയാൽ, ഫലം "1122" ആണ്.

ഒരു സ്‌ട്രിംഗിൽ നിന്ന് ഒരു സംഖ്യയിലേക്കും തിരിച്ചും പരിവർത്തനം ചെയ്യുന്നതിനുള്ള നിയമങ്ങൾ PHP-യിലെ പോലെ തന്നെയാണ്:

$str1 = 0 . "abc" ;
# ^ ഫലം "abc" ആണ്, പൂജ്യം എന്ന സംഖ്യ ശൂന്യമായ സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യപ്പെടുന്നു
$int1 = "aaa" + 1 ;
# ^ ഫലം 1 ആണ്, "aaa" സ്ട്രിംഗിൽ അക്കങ്ങളൊന്നുമില്ല
$int2 = "12aaa" + 1 ;
# ^ ഫലം 13 ആണ്, സ്ട്രിംഗിന്റെ ആദ്യ അക്കങ്ങൾ മാത്രമേ കണക്കിലെടുക്കൂ

വഴിയിൽ, പ്രഖ്യാപനത്തിനായി നീണ്ട വരികൾപ്രത്യേക ഓപ്പറേറ്റർമാരുണ്ട് - q, qq:

# ഒറ്റ ഉദ്ധരണികൾക്ക് സമാനമാണ്
$വാചകം = q (
നിങ്ങളുടെ പക്കൽ $15 ഉണ്ടോ?
} ;
# ഇരട്ട ഉദ്ധരണികൾക്ക് സമാനമാണ്
$ സന്ദേശം = qq (
ഹലോ, $username!
സുഖമാണോ?
} ;

അറേകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നുഇനിപ്പറയുന്ന രീതിയിൽ സംഭവിക്കുന്നു:

#!/usr/bin/perl

$scalar = "bebebebe" ;
($a, $b) = (1, 2); # $a = 1 പോലെ തന്നെ; $b = 2;
@arr = ("aaa" , 123 , $scalar , $a + $b ) ;
$arr [1] അച്ചടിക്കുക. " \n";
പുഷ് @arr , $a ;
പ്രിന്റ് പോപ്പ് (@arr) . " \n";

ഇവിടെ നമ്മൾ 4 ഘടകങ്ങൾ (ലൈൻ 5) അടങ്ങുന്ന ഒരു അറേ @arr സൃഷ്ടിക്കുന്നു. അപ്പോൾ നമ്മൾ രണ്ടാമത്തെ ഘടകം (ലൈൻ 6) ഔട്ട്പുട്ട് ചെയ്യുന്നു. മൂലകങ്ങളുടെ സംഖ്യ പൂജ്യത്തിൽ നിന്നാണ് ആരംഭിക്കുന്നത്, അതിനാൽ രണ്ടാമത്തെ ഘടകം പ്രദർശിപ്പിക്കാൻ സൂചിക 1 ഉപയോഗിക്കുന്നു. തുടർന്ന് $a വേരിയബിളിന്റെ മൂല്യം അറേയുടെ അവസാനം (പുഷ് ഫംഗ്‌ഷൻ, ലൈൻ 7) ഇടുക, ഉടൻ തന്നെ അത് വീണ്ടെടുത്ത് പ്രദർശിപ്പിക്കുക ( പോപ്പ് ഫംഗ്ഷൻ, ലൈൻ 8).

അറേ പേരുകൾ ആരംഭിക്കുന്നത് ഡോളറല്ല, "ഡോഗ്" എന്നതിൽ നിന്നാണ് എന്നത് ശ്രദ്ധിക്കുക (ഓർക്കാൻ പ്രയാസമില്ല - അനുബന്ധ ചിഹ്നങ്ങൾ ഇംഗ്ലീഷ് തരം പേരുകളുടെ ആദ്യ അക്ഷരങ്ങൾക്ക് സമാനമാണ്: $ - സ്കെലാർ, @ - അറേ). രണ്ടാമത്തെ അറേ എലമെന്റ് (ലൈൻ 6) ആക്സസ് ചെയ്യുമ്പോൾ, അറേ എലമെന്റ് ഒരു സ്കെലാർ ആയതിനാൽ ഡോളർ ചിഹ്നം ഉപയോഗിച്ചു. ആദ്യം ഇത് വളരെയധികം ആശയക്കുഴപ്പം ഉണ്ടാക്കുന്നു, എന്നാൽ പൊതുവേ എല്ലാം യുക്തിസഹമാണ്.

ഈ സ്ക്രിപ്റ്റിലും ഞങ്ങൾ വിളിക്കുന്നു പ്രിന്റ് ഫംഗ്ഷനുകൾഒപ്പം പരാൻതീസിസില്ലാതെ തള്ളുകയും ചെയ്യുക. പേളിൽ, ഒരു ഫംഗ്‌ഷൻ വിളിക്കുമ്പോൾ, അത് അവ്യക്തത ഉണ്ടാക്കാത്തിടത്തെല്ലാം, പരാൻതീസിസുകൾ ഒഴിവാക്കാവുന്നതാണ്.

സ്‌പെയ്‌സുകളില്ലാത്ത സ്ട്രിംഗുകളുള്ള ഒരു അറേ പ്രഖ്യാപിക്കാൻ, ഒരു പ്രത്യേക ഓപ്പറേറ്റർ ഉണ്ട് - qw:

@arr = qw/aaa bbb ccc/ ;
# സമാനമായ ("aaa", "bbb", "ccc"), ചെറുത് മാത്രം

ഹാഷുകൾഅറേകൾക്ക് സമാനമാണ്, എന്നാൽ ഹാഷിലെ ഘടകങ്ങൾ ക്രമപ്പെടുത്തിയിട്ടില്ല. ഈ സാഹചര്യത്തിൽ, ഒരു മൂലകം ആക്സസ് ചെയ്യപ്പെടുന്ന ഒരു കീ ആയി സ്ട്രിംഗുകൾ ഉപയോഗിക്കാം.

#!/usr/bin/perl

%ഹാഷ് = ( # ഹാഷുകളും അറേകളും പ്രഖ്യാപിക്കുമ്പോൾ നിങ്ങൾക്ക് കഴിയും
"x" => 12 , # ലൈൻ ബ്രേക്കുകൾ ഉപയോഗിക്കുക
y => 53, # കീയിൽ പ്രത്യേക പ്രതീകങ്ങളൊന്നും ഇല്ലെങ്കിൽ, ഉദ്ധരണികൾ ആവശ്യമില്ല
"z" => - 10.5 , # നിങ്ങൾക്ക് അവസാനം ഒരു കോമ ഇടാം
) ;

$hash("x")++; # x കോർഡിനേറ്റ് ഇപ്പോൾ 13 ആണ്
$hash (y) --; # y കോർഡിനേറ്റ് ഇപ്പോൾ 52 ആണ്

# ഡിസ്പ്ലേ കോർഡിനേറ്റുകൾ
അച്ചടിക്കുക "x = $hash(x), y = $hash(y), z = $hash(z)\n ";

ഹാഷ് നാമങ്ങൾ ഒരു ശതമാനം ചിഹ്നത്തിൽ ആരംഭിക്കുന്നു, അവ ഒരു ഘടകത്തെ സൂചിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു. ബ്രേസുകൾ(അറേകളുടെ കാര്യത്തിലെന്നപോലെ ചതുരമല്ല). പ്രധാന നാമം മുൻകൂട്ടി അറിയാമെങ്കിൽ, ഉദ്ധരണികളില്ലാതെ നിങ്ങൾക്ക് അത് വ്യക്തമാക്കാൻ കഴിയും (ലൈൻ 10).

വഴിയിൽ, $test, @test, %test വേരിയബിളുകൾ വ്യത്യസ്‌ത തരത്തിലുള്ള തികച്ചും സ്വതന്ത്രമായ വേരിയബിളുകളാണ്.

ഈ ഘട്ടത്തിൽ സോപാധികമായ പ്രസ്താവനകളിലേക്കും ഫോർ/വെയിൽ ലൂപ്പുകളിലേക്കും നീങ്ങാൻ ഞാൻ ആഗ്രഹിച്ചു, എന്നാൽ ഒരു പോസ്റ്റിനായി ഇതിനകം തന്നെ വളരെയധികം ടെക്‌സ്‌റ്റ് ഉണ്ടെന്ന് ഞാൻ മനസ്സിലാക്കി. അതേസമയം, നിരവധി ചോദ്യങ്ങൾ തിരശ്ശീലയ്ക്ക് പിന്നിൽ അവശേഷിക്കുന്നു:

  • സോപാധിക പ്രസ്താവനകൾ;
  • ലൂപ്പുകൾക്കും സമയത്തിനും;
  • പ്രവർത്തനങ്ങളുടെ പ്രഖ്യാപനം;
  • സ്ട്രീമുകളിലും ഫയലുകളിലും പ്രവർത്തിക്കുക;
  • കർശനമായ വാക്യഘടന;
  • റെഡിമെയ്ഡ് മൊഡ്യൂളുകളും ക്ലാസുകളും ഉപയോഗിക്കുന്നു.

ഇനിപ്പറയുന്ന പോസ്റ്റുകളിലൊന്നിൽ ഞാൻ ഇതിനെക്കുറിച്ച് എഴുതാം. ഈ പോസ്റ്റിൽ കുറഞ്ഞത് രണ്ട് കമന്റുകളെങ്കിലും ലഭിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു - രസകരവും / താൽപ്പര്യമില്ലാത്തതും, മനസ്സിലാക്കാവുന്നതും / മനസ്സിലാക്കാൻ കഴിയാത്തതും, അങ്ങനെ പലതും. നിങ്ങൾക്ക് പേളുമായി ബന്ധപ്പെട്ട ചോദ്യങ്ങളുണ്ടെങ്കിൽ (ഈ പോസ്റ്റുമായി ബന്ധപ്പെട്ടിരിക്കണമെന്നില്ല), അഭിപ്രായങ്ങളിൽ അവരോട് ചോദിക്കാൻ മടിക്കേണ്ടതില്ല!

നിങ്ങളുടെ ആദ്യത്തെ ലളിതമായ സ്ക്രിപ്റ്റുകൾ എഴുതാൻ Perl-ലെ പ്രോഗ്രാമിംഗിനെക്കുറിച്ചുള്ള ഈ പോസ്റ്റുകളുടെ പരമ്പര നിങ്ങളെ സഹായിക്കുമെന്ന് ഞാൻ പ്രതീക്ഷിക്കുന്നു. കാലക്രമേണ, സ്ക്രിപ്റ്റുകൾ കൂടുതൽ സങ്കീർണ്ണമാകും, അവ പുതിയ സാങ്കേതികവിദ്യകൾ (OOP, റെഗുലർ എക്സ്പ്രഷനുകൾ) ഉപയോഗിക്കും, കുറച്ച് സമയത്തിന് ശേഷം നിങ്ങളുടെ അനുഭവം മറ്റുള്ളവരുമായി പങ്കിടാൻ നിങ്ങൾക്ക് പേളിനെക്കുറിച്ച് വേണ്ടത്ര അറിയാമെന്ന് നിങ്ങൾ കണ്ടെത്തും.

പേൾ- അനിയന്ത്രിതമായ ടെക്സ്റ്റ് ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിനും അവയിൽ നിന്ന് ആവശ്യമായ വിവരങ്ങൾ വേർതിരിച്ചെടുക്കുന്നതിനും സന്ദേശങ്ങൾ നൽകുന്നതിനും അനുയോജ്യമായ ഒരു വ്യാഖ്യാന ഭാഷ. വിവിധ സിസ്റ്റം പ്രോഗ്രാമുകൾ എഴുതുന്നതിനും ഇത് സൗകര്യപ്രദമാണ്. ഈ ഭാഷ ഉപയോഗിക്കാൻ എളുപ്പമാണ്, കാര്യക്ഷമമാണ്, എന്നാൽ അത് ഗംഭീരവും ഒതുക്കമുള്ളതുമാണെന്ന് പറയാൻ പ്രയാസമാണ്.

Unix കമ്പ്യൂട്ടറുകളുടെ ഒരു ശൃംഖലയ്‌ക്കായി സിസ്റ്റം റിസോഴ്‌സുകൾ കൈകാര്യം ചെയ്യുന്നതിനും ക്രമീകരിക്കുന്നതിനുമുള്ള ഒരു ഉപകരണമായി 1986-ൽ പേൾ സൃഷ്ടിച്ചു. ഇത് C, shell, sed andawk എന്നിവയുടെ മികച്ച സവിശേഷതകൾ സംയോജിപ്പിക്കുന്നു, അതിനാൽ അവയുമായി പരിചയമുള്ളവർക്ക്, Perl പഠിക്കുന്നത് ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല. പേൾ എക്സ്പ്രഷനുകളുടെ വാക്യഘടന C യുടെ വാക്യഘടനയോട് അടുത്താണ്. മിക്ക OSUNIXPerl യൂട്ടിലിറ്റികളിൽ നിന്നും വ്യത്യസ്തമായി, പ്രോസസ്സ് ചെയ്ത ഡാറ്റയുടെ അളവിൽ നിയന്ത്രണങ്ങളൊന്നുമില്ല, ആവശ്യത്തിന് ഉറവിടങ്ങൾ ഉണ്ടെങ്കിൽ, മുഴുവൻ ഫയലും ഒരു വരിയായി പ്രോസസ്സ് ചെയ്യുന്നു. ആവർത്തനം അനിയന്ത്രിതമായ ആഴത്തിൽ ആയിരിക്കാം. ടെക്‌സ്‌റ്റ് ഫയലുകൾ സ്‌കാൻ ചെയ്യാനാണ് പേൾ രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നതെങ്കിലും, ഇതിന് ബൈനറി ഡാറ്റ പ്രോസസ്സ് ചെയ്യാനും അസോസിയേറ്റീവ് അറേകൾക്ക് സമാനമായി .dbm ഫയലുകൾ സൃഷ്‌ടിക്കാനും കഴിയും. പതിവ് എക്സ്പ്രഷനുകൾ ഉപയോഗിക്കാനും ഒബ്‌ജക്‌റ്റുകൾ സൃഷ്‌ടിക്കാനും പവർ അല്ലെങ്കിൽ സി++ പ്രോഗ്രാമിലേക്ക് പേൾ കോഡിന്റെ ഭാഗങ്ങൾ ചേർക്കാനും പേൾ നിങ്ങളെ അനുവദിക്കുന്നു, കൂടാതെ ഡാറ്റാബേസുകൾ ആക്‌സസ് ചെയ്യാനും നിങ്ങളെ അനുവദിക്കുന്നു.

ടെക്സ്റ്റ് ഡോക്യുമെന്റുകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന്റെ കാര്യക്ഷമത മെച്ചപ്പെടുത്തുന്നതിനാണ് പേൾ ഭാഷ സൃഷ്ടിച്ചത്. ഇത് സ്ട്രിംഗ് പ്രോസസ്സിംഗിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. നിലവിൽ, എക്സിക്യൂട്ടബിൾ ഡബ്ല്യുഡബ്ല്യുഡബ്ല്യു സെർവർ മൊഡ്യൂളുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു ഉപകരണമായി ഭാഷ വ്യാപകമായി മാറിയിരിക്കുന്നു. നിലവിലുള്ള എക്സ്റ്റൻഷൻ പാക്കേജുകൾ ഒരു പേൾ പ്രോഗ്രാമിൽ നിന്ന് നേരിട്ട് SQL സെർവറുകളിലേക്ക് ആക്സസ് നൽകുന്നു. ഡാറ്റാബേസുകളിലേക്ക് WWW ആക്സസ് നൽകുമ്പോൾ ഉണ്ടാകുന്ന എല്ലാ പ്രശ്നങ്ങളും പരിഹരിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. അനിയന്ത്രിതമായ ഡാറ്റ ഘടനകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ പേൾ ഫലപ്രദമാണ്: നിലവിലുള്ള റിപ്പോർട്ടുകൾ, ലിസ്റ്റുകൾ, ഇലക്ട്രോണിക് രൂപത്തിൽ കാർഡുകൾ.

CGI ആപ്ലിക്കേഷനുകൾ മിക്കവാറും ഏത് ഭാഷയിലും എഴുതാമെങ്കിലും, പല പ്രോഗ്രാമർമാർക്കും Perl, CGI പ്രോഗ്രാമിംഗ് പര്യായമായി മാറിയിരിക്കുന്നു. സണിന്റെ ആദ്യ വെബ്‌മാസ്റ്ററായ ഹസ്സൻ ഷ്രോഡർ പറഞ്ഞതുപോലെ, "ഇന്റർനെറ്റിന്റെ ജീവരക്തമാണ് പേൾ." CGI പ്രോഗ്രാമിംഗിനായി ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്ന ഭാഷയാണ് പേൾ, ഇതിന് നിരവധി നല്ല കാരണങ്ങളുണ്ട്:

പേൾ പഠിക്കാൻ എളുപ്പമാണ്: അതിന്റെ വാക്യഘടന മറ്റ് ഭാഷകളെ അനുസ്മരിപ്പിക്കുന്നു (ഉദാഹരണത്തിന് സി) കാരണം അത് "ഒരുപാട് ക്ഷമിക്കുന്നു" - ഒരു പിശക് സംഭവിച്ചാൽ, പ്രശ്നം വേഗത്തിൽ പ്രാദേശികവൽക്കരിക്കാൻ സഹായിക്കുന്ന ഒരു വിശദമായ സന്ദേശം പ്രദർശിപ്പിക്കും.

ഒരു വ്യാഖ്യാന ഭാഷയായതിനാൽ പേൾ ദ്രുതഗതിയിലുള്ള വികസനം പ്രോത്സാഹിപ്പിക്കുന്നു; പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് സോഴ്സ് കോഡ് കംപൈൽ ചെയ്യേണ്ടതില്ല.

കുറഞ്ഞ പരിഷ്കാരങ്ങളോടെ നിരവധി പ്ലാറ്റ്ഫോമുകളിൽ പേൾ ലഭ്യമാണ്.

പതിവ് എക്‌സ്‌പ്രഷൻ തിരയലിനുള്ള പിന്തുണയും ഭാഷയിൽ അന്തർനിർമ്മിതമായി മാറ്റിസ്ഥാപിക്കുന്നതിനുള്ള പിന്തുണയും ഉള്ള വളരെ ശക്തമായ സ്ട്രിംഗ് പ്രോസസ്സിംഗ് ഫംഗ്ഷനുകൾ പേൾ ഉൾക്കൊള്ളുന്നു.

പേൾ ബൈനറി ഡാറ്റ ടെക്സ്റ്റ് പോലെ എളുപ്പത്തിൽ പ്രോസസ്സ് ചെയ്യുന്നു.

പേളിന് തരങ്ങൾക്കിടയിൽ വ്യക്തമായ വ്യത്യാസം ആവശ്യമില്ല: അക്കങ്ങൾ, സ്ട്രിംഗുകൾ, ബൂളിയൻ എക്സ്പ്രഷനുകൾ എന്നിവ സാധാരണ സ്കെയിലറുകളാണ്.

പേൾ ബാഹ്യ ആപ്ലിക്കേഷനുകളുമായി വളരെ എളുപ്പത്തിൽ സംവദിക്കുകയും നൽകുകയും ചെയ്യുന്നു നേറ്റീവ് പ്രവർത്തനങ്ങൾഫയൽ സിസ്റ്റങ്ങളിൽ പ്രവർത്തിക്കുന്നതിന്.

CPAN-ൽ നിന്ന് Perl-നായി സ്വതന്ത്രമായി ലഭ്യമായ നിരവധി മൊഡ്യൂളുകൾ ഉണ്ട്, ഡൈനാമിക് ഗ്രാഫിക്സ് സൃഷ്ടിക്കുന്നതിനുള്ള മൊഡ്യൂളുകൾ മുതൽ ഇന്റർനെറ്റ് സെർവറുകളുമായും ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റങ്ങളുമായും ഉള്ള ഇന്റർഫേസുകൾ വരെ. CPAN-നെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾക്ക്, അനുബന്ധം B കാണുക.

പേൾ ശരിക്കും വളരെ വേഗതയുള്ളതാണ്: അത് ഒരു സോഴ്സ് ഫയൽ വായിക്കുമ്പോൾ, അത് ഉടൻ തന്നെ ലോ-ലെവൽ കോഡിലേക്ക് കംപൈൽ ചെയ്യുന്നു, അത് അത് എക്സിക്യൂട്ട് ചെയ്യുന്നു. സാധാരണഗതിയിൽ, Perl-ൽ കംപൈലേഷനും എക്സിക്യൂഷനും വെവ്വേറെ ഘട്ടങ്ങളായി കണക്കാക്കില്ല, കാരണം അവ ഒരുമിച്ച് നടപ്പിലാക്കുന്നു: Perl ആരംഭിക്കുന്നു, ഉറവിട ഫയൽ വായിക്കുന്നു, അത് കംപൈൽ ചെയ്യുന്നു, പ്രവർത്തിപ്പിക്കുന്നു, തുടർന്ന് പുറത്തുകടക്കുന്നു. CGI സ്ക്രിപ്റ്റുകൾ ഉൾപ്പെടെ, ഒരു Perl സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോഴെല്ലാം ഈ പ്രക്രിയ ആവർത്തിക്കുന്നു. പേൾ വളരെ കാര്യക്ഷമമായതിനാൽ, തിരക്ക് കുറഞ്ഞ സെർവറുകളിലെ എല്ലാ അഭ്യർത്ഥനകളും കൈകാര്യം ചെയ്യാൻ ഈ പ്രക്രിയ വേഗത്തിലാണ്. എന്നിരുന്നാലും, പുതിയ പ്രക്രിയകൾ സൃഷ്ടിക്കേണ്ടതിന്റെ ആവശ്യകത കാരണം വിൻഡോസ് സിസ്റ്റങ്ങളിൽ ഇത് വളരെ കാര്യക്ഷമമല്ലെന്ന് ശ്രദ്ധിക്കുക.

1994 അവസാനത്തോടെ റാസ്മസ് ലെർഡോർഫ് ആണ് PHP കണ്ടുപിടിച്ചത്. ആദ്യ പതിപ്പ് 1995 ൽ "വ്യക്തിഗത ഹോം പേജ് ടൂൾകിറ്റ്" എന്ന പേരിൽ പുറത്തിറങ്ങി, പിന്നീട് അത് പുനർരൂപകൽപ്പന ചെയ്യുകയും PHP/FI പതിപ്പ് 2 (FI - ഫോം പ്രോസസ്സിംഗ് മൊഡ്യൂൾ) എന്ന് വിളിക്കുകയും ചെയ്തു. mSQL ഡാറ്റാബേസുകൾക്കുള്ള പിന്തുണയും ചേർത്തിട്ടുണ്ട്. ആ നിമിഷം മുതൽ, സന്നദ്ധപ്രവർത്തകർ വികസനത്തിൽ പങ്കെടുക്കാൻ തുടങ്ങി.

PHP ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകൾ ഏകദേശമാണ്, എന്നാൽ നെറ്റ്ക്രാഫ്റ്റ് നടത്തിയ ഒരു പഠനമനുസരിച്ച്, 2001-ന്റെ തുടക്കത്തിൽ, ലോകമെമ്പാടുമുള്ള 5,300,000 സൈറ്റുകളിൽ PHP ഉപയോഗിച്ചിരുന്നു. താരതമ്യത്തിനായി: ഈ സമയത്ത് IIS സെർവറുകളുടെ എണ്ണം ഏകദേശം തുല്യമായിരുന്നു (5 ദശലക്ഷം). PHP വ്യാഖ്യാതാവിന്റെ വികസനം ഒരു സംഘടിത ടീം പ്രക്രിയയുടെ രൂപമെടുത്തു, വ്യാഖ്യാതാവിന്റെ കാതൽ Zend.com വികസിപ്പിച്ചെടുത്തു. എന്നിരുന്നാലും, PHP സ്വതന്ത്രമായി വിതരണം ചെയ്യപ്പെടുന്നു: അതിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് PHP.net-ൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യാവുന്നതാണ്. PHP മൊഡ്യൂളുകൾ അപ്പാച്ചെ സെർവറിലും ലിനക്സ് സിസ്റ്റം കിറ്റുകളിലും വിതരണം ചെയ്യുന്നു.

യഥാർത്ഥത്തിൽ ഒരു ചുരുക്കെഴുത്ത് RNRഉദ്ദേശിച്ചത് പ്രീപ്രൊസസ്സർ ന്റെ വീട് പേജുകൾ - ഹോം പേജ് പ്രീപ്രൊസസ്സർ. HTML പേജുകളിൽ ഉൾച്ചേർത്തതും സെർവറിൽ എക്സിക്യൂട്ട് ചെയ്യുന്നതുമായ സ്ക്രിപ്റ്റുകൾക്കുള്ള ഭാഷയാണിത്. മിക്കപ്പോഴും, അതിന്റെ വാക്യഘടന സി, പേൾ, ജാവ തുടങ്ങിയ ഭാഷകളിൽ നിന്ന് കടമെടുത്തതാണ്, അതേ സമയം ഈ ഭാഷകളുടെ അഭാവത്തിൽ ധാരാളം സവിശേഷതകൾ ചേർത്തിട്ടുണ്ട്. ലളിതമായി പറഞ്ഞാൽ, സിയുടെ കാഠിന്യത്തിനും പേളിന്റെ "പരിധിയില്ലായ്മ"ക്കും ഒരു മികച്ച ബദലാണ് PHP വാക്യഘടന.

RHP ന് ഏതാണ്ട് ഉണ്ട് മുഴുവൻ സെറ്റ്(PHP യുടെ വരവിന് മുമ്പ്) ഒരു വെബ് പ്രോഗ്രാമർക്ക് സ്വപ്നം കാണാൻ കഴിയുന്ന പ്രവർത്തനക്ഷമത. അദ്ദേഹത്തിന്റെ ലക്ഷ്യം- കഴിയുന്നത്ര വേഗത്തിൽ ചലനാത്മകമായി സൃഷ്ടിച്ച വെബ് പേജുകൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. PHP പഠിക്കുന്നതും ഉപയോഗിക്കുന്നതും തുടക്കക്കാർക്കും പ്രൊഫഷണൽ പ്രോഗ്രാമർമാർക്കും പ്രയോജനകരമാകുമെന്ന് നമുക്ക് ശരിയായി പറയാൻ കഴിയും.

JSP (Java Server Pages and Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages ടെക്നോളജീസ് എന്നിവയാണ് PHP യുടെ പ്രധാന എതിരാളികൾ.

ഈ സാങ്കേതികവിദ്യകളിൽ അന്തർലീനമായ പോരായ്മകൾ നമുക്ക് പരിഗണിക്കാം. ജെ.എസ്.പി- പഠിക്കാനും ഉപയോഗിക്കാനും വളരെ ബുദ്ധിമുട്ടുള്ള ഭാഷ. എ.എസ്.പി., VBScript (വിഷ്വൽ ബേസിക്) വാക്യഘടനയെ അടിസ്ഥാനമാക്കി, അതിന്റെ സ്വന്തം ഫംഗ്ഷനുകളിൽ ഏതാനും ഡസൻ മാത്രമേയുള്ളൂ, അതിനാൽ COM ഒബ്ജക്റ്റുകൾ ഉപയോഗിക്കാൻ നിർബന്ധിതരാകുന്നു; കൂടാതെ, ഇത് വിൻഡോസിന് കീഴിൽ പ്രവർത്തിക്കുന്നതിൽ മാത്രം ശ്രദ്ധ കേന്ദ്രീകരിച്ചിരിക്കുന്നു. പേൾ- ഭാഷ അമ്പരപ്പിക്കുന്നതാണ്, അതിന്റെ സ്വാതന്ത്ര്യങ്ങൾ മനസ്സിലാക്കാൻ ബുദ്ധിമുട്ടാണ്. എസ്.എസ്.ഐനിരവധി ഫയലുകളിൽ നിന്ന് ഒരു HTML പേജ് രചിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. CF- ഒരു വാണിജ്യ ഉൽപ്പന്നം, അത് അതിന്റെ പ്രധാന പോരായ്മയാണ്.

അടിസ്ഥാനംഅന്തസ്സ് RNR:

    സൗ ജന്യം; നിരന്തരം മെച്ചപ്പെടുത്തുന്നു; UNIX, Windows പ്ലാറ്റ്‌ഫോമുകളിൽ പ്രവർത്തിക്കുന്നു;

    മിക്ക ഡിബിഎംഎസുകളിലും പ്രവർത്തിക്കാൻ അനുവദിക്കുന്നു;

    വിപുലമായ ഫംഗ്ഷനുകൾ ഉണ്ട് (മൂവായിരത്തിലധികം);

    ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ് അനുവദിക്കുന്നു;

    ഉപയോഗിക്കാൻ കഴിയും HTTP പ്രോട്ടോക്കോളുകൾ, FTP, SHAR, SNMP, NNTP, POPZ, നെറ്റ് സോക്കറ്റുകൾ എന്നിവയും മറ്റുള്ളവയും;

    അതിന്റെ എതിരാളികൾ മുകളിൽ ലിസ്റ്റുചെയ്തിരിക്കുന്ന എല്ലാ പ്രവർത്തനങ്ങളും നടത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു, കൂടാതെ ഗ്രാഫിക്സ് ഫയലുകളിൽ പോലും പ്രവർത്തിക്കുന്നു. നിങ്ങൾക്ക് PHP സ്ക്രിപ്റ്റുകൾ വ്യാഖ്യാനിച്ച ഫയലുകളായി പ്രവർത്തിപ്പിക്കാനും എക്സിക്യൂട്ടബിൾ ആപ്ലിക്കേഷനുകൾ കംപൈൽ ചെയ്യാനും കഴിയും (GTK GUI പിന്തുണയുള്ളവ ഉൾപ്പെടെ).

PHP യ്ക്ക് എന്തെങ്കിലും ചെയ്യാൻ കഴിയില്ലെന്ന് നിങ്ങൾ കണ്ടെത്തുകയാണെങ്കിൽ (അല്ലെങ്കിൽ നിങ്ങൾ ആഗ്രഹിക്കുന്ന രീതിയിൽ പ്രവർത്തിക്കുന്നില്ല), PHP സോഴ്സ് കോഡിൽ (C ൽ എഴുതിയത്) നിങ്ങൾ ആഗ്രഹിക്കുന്ന മാറ്റങ്ങൾ വരുത്തുന്നതിൽ നിന്ന് ആരും നിങ്ങളെ തടയില്ല. PHP ഒരു ഓപ്പൺ സോഴ്‌സ് സോഫ്‌റ്റ്‌വെയർ ഉൽപ്പന്നമാണ്, നിങ്ങളുടെ സ്വന്തം വിപുലീകരണ മൊഡ്യൂളുകൾ സൃഷ്‌ടിക്കുന്നതിലൂടെ അതിലേക്കുള്ള മെച്ചപ്പെടുത്തലുകളും കൂട്ടിച്ചേർക്കലുകളും എപ്പോഴും സ്വാഗതം ചെയ്യുന്നു.