Perl language structure
પર્લ પ્રોગ્રામિંગ લેંગ્વેજની રચનામાં ભાષાના વાક્યરચના નિયમો અને કાર્યક્રમોનું આયોજન કરવાની સામાન્ય રીતો બંનેનો સમાવેશ થાય છે. પર્લની ડિઝાઇન ફિલસૂફી સામાન્ય રીતે ટાંકવામાં આવેલા સૂત્રમાં વ્યક્ત થાય છે "તે કરવા માટે એક કરતાં વધુ રીત છે". બહુ-આદર્શ તરીકે, ગતિશીલ રીતે ટાઇપ કરેલી ભાષા તરીકે, પર્લ પ્રોગ્રામ ડિઝાઇનમાં મોટી માત્રામાં લવચીકતાને મંજૂરી આપે છે. પર્લ મોડ્યુલરાઇઝેશનને પણ પ્રોત્સાહન આપે છે; આ તેના યુનિક્સ મૂળના ઘટક-આધારિત ડિઝાઇન માળખાને આભારી છે, અને CPAN આર્કાઇવના કદ માટે જવાબદાર છે, જે 100,000 થી વધુ મોડ્યુલોના સમુદાય-જાળવણી ભંડાર છે. પર્લમાં મૂળભૂત વાક્યરચના, ન્યૂનતમ હેલો વર્લ્ડ પ્રોગ્રામ નીચે પ્રમાણે લખી શકાય છેઃ "હેલો, વર્લ્ડ! \n" પ્રિન્ટ કરો આ સ્ટ્રિંગ હેલો, વર્લ્ડ પ્રિન્ટ કરે છે! અને એક નવી રેખા, પ્રતીકાત્મક રીતે એન અક્ષર દ્વારા વ્યક્ત કરવામાં આવે છે, જેનું અર્થઘટન અગાઉના એસ્કેપ અક્ષર (બેકસ્લેશ) દ્વારા બદલવામાં આવે છે. આવૃત્તિ 5.10 થી, નવું 'કહો' બિલ્ટઇન એ જ અસરને વધુ સરળ રીતે ઉત્પન્ન કરે છેઃ "હેલો, વર્લ્ડ!" સંપૂર્ણ પર્લ પ્રોગ્રામને પર્લ માટે કમાન્ડ-લાઇન પરિમાણ તરીકે પણ નિર્દિષ્ટ કરી શકાય છે, તેથી તે જ પ્રોગ્રામને કમાન્ડ લાઇનમાંથી પણ ચલાવી શકાય છે (યુનિક્સ માટે બતાવેલ ઉદાહરણ): $perl-e 'પ્રિન્ટ' હેલો, વર્લ્ડ! \n 'પ્રોગ્રામનું કેનોનિકલ સ્વરૂપ થોડું વધુ વર્બોઝ છેઃ #!/યુએસઆર/બિન/પર્લ પ્રિન્ટ' હેલો, વર્લ્ડ! \n '; હેશ માર્ક અક્ષર પર્લમાં ટિપ્પણી રજૂ કરે છે, જે કોડની લાઇનના અંત સુધી ચાલે છે અને કમ્પાઇલર દ્વારા અવગણવામાં આવે છે (વિન્ડોઝ સિવાય). અહીં વપરાયેલી ટિપ્પણી એક ખાસ પ્રકારની છેઃ તેને શેબાંગ રેખા કહેવામાં આવે છે. આ યુનિક્સ જેવી ઓપરેટિંગ સિસ્ટમોને પર્લ દુભાષિયો શોધવા માટે કહે છે, જેનાથી પર્લનો સ્પષ્ટ ઉલ્લેખ કર્યા વિના પ્રોગ્રામને બોલાવવાનું શક્ય બને છે. (નોંધ કરો કે, માઈક્રોસોફ્ટ વિન્ડોઝ સિસ્ટમો પર, પર્લ પ્રોગ્રામ્સ સામાન્ય રીતે. pl એક્સ્ટેંશનને પર્લ દુભાષિયો સાથે જોડીને બોલાવવામાં આવે છે. આવા સંજોગોને પહોંચી વળવા માટે, પર્લ શેબાંગ રેખાને શોધી કાઢે છે અને તેને સ્વીચો માટે વિશ્લેષણ કરે છે.) કેનોનિકલ સ્વરૂપમાં બીજી પંક્તિમાં અર્ધવિરામનો સમાવેશ થાય છે, જેનો ઉપયોગ પર્લમાં નિવેદનોને અલગ કરવા માટે થાય છે. બ્લોક અથવા ફાઇલમાં માત્ર એક જ નિવેદન સાથે, વિભાજક બિનજરૂરી છે, તેથી તેને પ્રોગ્રામના ન્યૂનતમ સ્વરૂપમાંથી કાઢી શકાય છે-અથવા વધુ સામાન્ય રીતે કોઈપણ બ્લોક અથવા ફાઇલમાં અંતિમ નિવેદનમાંથી. કેનોનિકલ સ્વરૂપમાં તેનો સમાવેશ થાય છે, કારણ કે દરેક નિવેદનને બિનજરૂરી હોય ત્યારે પણ તેને સમાપ્ત કરવું સામાન્ય છે, કારણ કે આ સંપાદનને સરળ બનાવે છેઃ અર્ધવિરામને સમાયોજિત કર્યા વિના કોડને બ્લોક અથવા ફાઇલના અંતમાં ઉમેરી શકાય છે અથવા તેનાથી દૂર ખસેડી શકાય છે. પર્લની આવૃત્તિ 5.10 એક કહેવાનું કાર્ય રજૂ કરે છે જે સ્પષ્ટ રીતે તેના આઉટપુટમાં નવી લાઇનના અક્ષરને જોડે છે, જે ન્યૂનતમ "હેલો વર્લ્ડ" પ્રોગ્રામને વધુ ટૂંકો બનાવે છેઃ નવા 5.10 કાર્યોને આયાત કરવા માટે 5.010; #નો ઉપયોગ કરવો આવશ્યક છે, નોંધ લો કે તે 5.010 છે 5.10 નહીં કે 'હેલો, વર્લ્ડ!' ડેટા પ્રકારો પર્લમાં સંખ્યાબંધ મૂળભૂત ડેટા પ્રકારો છે. સૌથી વધુ ઉપયોગમાં લેવાતા અને ચર્ચા કરાયેલ સ્કેલર, એરે, હેશ, ફાઇલહેન્ડલ અને સબરૂટિન છેઃ સ્કેલર મૂલ્યો શબ્દમાળા મૂલ્યો (શાબ્દિક) અવતરણ દ્વારા બંધ હોવા જોઈએ. બેવડાં અવતરણમાં શબ્દમાળાને બંધ કરવાથી ચલોનાં મૂલ્યો કે જેમના નામ શબ્દમાળામાં દેખાય છે તે શબ્દમાળામાં ચલ નામ (અથવા અંતર્વેષ્ટિત) ને આપમેળે બદલી શકે છે. એક અવતરણમાં શબ્દમાળાને બંધ કરવાથી ચલ અંતર્વેશન અટકાવવામાં આવે છે. ઉદાહરણ તરીકે, જો $નામ "જિમ" હોય તો પ્રિન્ટ ("મારું નામ $નામ છે") "મારું નામ જિમ છે" (બેવડા અવતરણમાં પ્રક્ષેપણ) પ્રિન્ટ કરશે, પરંતુ પ્રિન્ટ ('મારું નામ $નામ છે') "મારું નામ $નામ છે" પ્રિન્ટ કરશે (એક અવતરણમાં કોઈ પ્રક્ષેપણ નહીં). શબ્દમાળામાં બેવડા અવતરણ ચિહ્નનો સમાવેશ કરવા માટે, તેની પહેલાં બેકસ્લેશ કરો અથવા શબ્દમાળાને એક જ અવતરણમાં જોડો. એક જ અવતરણ ચિહ્નનો સમાવેશ કરવા માટે, તેની પહેલાં બેકસ્લેશ કરો અથવા સ્ટ્રિંગને બેવડા અવતરણમાં જોડો. સ્ટ્રિંગ્સને q અને qq ક્વોટ જેવા ઓપરેટરો સાથે પણ ટાંકવામાં આવી શકે છેઃ 'આ' અને q (આ) સમાન છે, '$આ' અને qq ($આ) સમાન છે. છેવટે, બહુરેખીય શબ્દમાળાઓને અહીંના દસ્તાવેજોનો ઉપયોગ કરીને વ્યાખ્યાયિત કરી શકાય છેઃ $બહુરેખીય _ શબ્દમાળા = <<EOF; આ મારી બહુરેખીય શબ્દમાળા નોંધ છે કે હું તેને "EOF" શબ્દ સાથે સમાપ્ત કરી રહ્યો છું. ઇ. ઓ. એફ. સંખ્યાઓ (આંકડાકીય અચળાંકો) ને અવતરણની જરૂર નથી. પર્લ સંખ્યાઓને શબ્દમાળાઓમાં રૂપાંતરિત કરશે અને તેનાથી ઊલટું તેનો ઉપયોગ કયા સંદર્ભમાં થાય છે તેના આધારે. જ્યારે શબ્દમાળાઓને સંખ્યામાં રૂપાંતરિત કરવામાં આવે છે, ત્યારે શબ્દમાળાના પાછળના બિન-આંકડાકીય ભાગોને કાઢી નાખવામાં આવે છે. જો સ્ટ્રિંગનો કોઈ અગ્રણી ભાગ આંકડાકીય ન હોય, તો સ્ટ્રિંગને 0 નંબરમાં રૂપાંતરિત કરવામાં આવશે. નીચેના ઉદાહરણમાં, $n અને $m શબ્દમાળાઓને સંખ્યાઓ તરીકે ગણવામાં આવે છે. આ કોડ '5' નંબર છાપે છે. ચલની કિંમતો સમાન રહે છે. નોંધ લો કે પર્લમાં, + હંમેશા આંકડાકીય એડિશન ઓપરેટર હોય છે. સ્ટ્રિંગ કોન્કેટેનેશન ઓપરેટર એ સમયગાળો છે. $n = '3 સફરજન'; $m = '2 નારંગી'; પ્રિન્ટ $n + $m; અપૂર્ણાંક મૂલ્યોને પૂર્ણાંક મૂલ્યોમાં ગોળાકાર કરવા માટે કાર્યો પૂરા પાડવામાં આવે છેઃ અપૂર્ણાંક ભાગને બંધ કરીને, શૂન્ય તરફ ગોળાકાર કરો; પોસિક્સઃઃ છત અને પોસિક્સઃઃ ફ્લોર રાઉન્ડ હંમેશા ઉપર અને હંમેશા નીચે, અનુક્રમે. પ્રિન્ટએફ "% એફ" અથવા સ્પ્રિન્ટએફ "% એફ" નું નંબર-ટુ-સ્ટ્રિંગ રૂપાંતરણ રાઉન્ડ આઉટ ઇવન, બેંકરોના ગોળાકારનો ઉપયોગ કરે છે. પર્લ પાસે બુલિયન સંદર્ભ પણ છે જેનો ઉપયોગ તે શરતી નિવેદનોના મૂલ્યાંકનમાં કરે છે. નીચેના મૂલ્યો બધા પર્લમાં ખોટા તરીકે મૂલ્યાંકન કરે છેઃ $ફોલ્સ = 0; #નંબર ઝીરો $ફોલ્સ = 0.0; #ફ્લોટ તરીકે નંબર ઝીરો $ફોલ્સ = 0b0; #દ્વિસંગીમાં નંબર ઝીરો $ફોલ્સ = 0x0; #હેક્સાડેસિમલમાં નંબર ઝીરો $ફોલ્સ = '0'; #સ્ટ્રિંગ ઝીરો $ફોલ્સ = "; #ખાલી સ્ટ્રિંગ $ફોલ્સ = (); #ખાલી સૂચિ $ફોલ્સ = અનડેફ; #અનડેફ $ફોલ્સ = 2-3+1 #થી વળતર મૂલ્ય જે" 0 "માં રૂપાંતરિત થાય છે તેથી તે ફોલ્સ છે. આમાં "0 પરંતુ સાચું" ની વિચિત્ર સ્વ-વર્ણનાત્મક શાબ્દિક સ્ટ્રિંગનો સમાવેશ થાય છે, જે હકીકતમાં સંખ્યા તરીકે 0 છે, પરંતુ જ્યારે બુલિયન તરીકે વપરાય છે ત્યારે સાચું છે. તમામ બિન-આંકડાકીય શબ્દમાળાઓમાં પણ આ ગુણધર્મ હોય છે, પરંતુ આ ચોક્કસ શબ્દમાળા આંકડાકીય ચેતવણી વિના પર્લ દ્વારા કાપવામાં આવે છે. આ સ્ટ્રિંગનું ઓછું સ્પષ્ટ પરંતુ વધુ કલ્પનાત્મક રીતે પોર્ટેબલ વર્ઝન '0E0' અથવા '0e0' છે, જે 0 તરીકે મૂલ્યાંકન કરવામાં આવતા અક્ષરો પર આધાર રાખતું નથી, કારણ કે '0E0' શાબ્દિક રીતે શૂન્ય ગુણ્યા દસ ઘાત શૂન્ય છે. ખાલી હેશ {} પણ સાચું છે; આ સંદર્ભમાં {} એ ખાલી બ્લોક નથી, કારણ કે પર્લ-ઇ 'પ્રિન્ટ રીફ {}' હેશ આપે છે. મૂલ્યાંકન કરેલ બુલિયન અભિવ્યક્તિઓ પણ સ્કેલર મૂલ્યો છે. દસ્તાવેજીકરણ વચન આપતું નથી કે સાચું કે ખોટું કઈ ચોક્કસ કિંમત પરત કરવામાં આવશે. ઘણા બુલિયન ઓપરેટરો સાચું માટે 1 અને ખોટું માટે ખાલી-સ્ટ્રિંગ પરત કરે છે. વ્યાખ્યાયિત () વિધેય નક્કી કરે છે કે ચલમાં કોઈ મૂલ્ય સમૂહ છે કે નહીં. ઉપરોક્ત ઉદાહરણોમાં, undef સિવાયના દરેક મૂલ્ય માટે વ્યાખ્યાયિત ($false) સાચું છે. જો 1 અથવા 0 ની ખાસ જરૂર હોય, તો શરતી ઓપરેટરનો ઉપયોગ કરીને સ્પષ્ટ રૂપાંતર કરી શકાય છેઃ મારું $વાસ્તવિક _ પરિણામ = $બુલિયન _ પરિણામ? 1: 0; એરે મૂલ્યો એરે મૂલ્ય (અથવા સૂચિ) તેના તત્વોને અલ્પવિરામ દ્વારા અલગ કરીને, કૌંસ દ્વારા બંધ કરીને (ઓછામાં ઓછું જ્યાં ઓપરેટર અગ્રતા દ્વારા જરૂરી હોય ત્યાં) સૂચિબદ્ધ કરીને સ્પષ્ટ કરવામાં આવે છે. @scores = (32,45,16,5); qw () ક્વોટ જેવા ઓપરેટર અવતરણચિહ્નો અને અલ્પવિરામની ટાઇપિંગ વિના શબ્દમાળાઓની સૂચિની વ્યાખ્યાને મંજૂરી આપે છે. કૌંસને બદલે લગભગ કોઈપણ સીમાંકનનો ઉપયોગ કરી શકાય છે. નીચેની રેખાઓ સમકક્ષ છેઃ @names = ('બિલી', 'જૉ', 'જિમ-બોબ'); @names = qw (બિલી જૉ જિમ-બોબ); વિભાજીત કાર્ય શબ્દમાળાઓની સૂચિ આપે છે, જે સીમાંકન શબ્દમાળા અથવા નિયમિત અભિવ્યક્તિનો ઉપયોગ કરીને શબ્દમાળા અભિવ્યક્તિથી વિભાજિત થાય છે. @scores = વિભાજિત (',', '32,45,16,5'); સૂચિના વ્યક્તિગત ઘટકોને ચોરસ કૌંસમાં આંકડાકીય અનુક્રમણિકા પ્રદાન કરીને એક્સેસ કરવામાં આવે છે. સ્કેલર સિગિલનો ઉપયોગ કરવો જ જોઇએ. કૌંસમાં આંકડાકીય સૂચકાંકોની શ્રેણી અથવા સૂચિનો ઉપયોગ કરીને સબલિસ્ટ્સ (એરે સ્લાઇસેસ) પણ સ્પષ્ટ કરી શકાય છે. આ કિસ્સામાં એરે સિગિલનો ઉપયોગ થાય છે. ઉદાહરણ તરીકે, $મહિનો [3] એ "એપ્રિલ" છે (એરેમાં પ્રથમ તત્વનું અનુક્રમણિકા મૂલ્ય 0 છે), અને @month [4.6] એ ("મે", "જૂન", "જુલાઈ") છે. હેશ મૂલ્યો પર્લ પ્રોગ્રામરો કી/મૂલ્ય જોડીઓની સૂચિમાંથી હેશ (અથવા સહયોગી એરે) ને શરૂ કરી શકે છે. જો કીઓને અલ્પવિરામને બદલે => ઓપરેટર (કેટલીકવાર ચરબી અલ્પવિરામ તરીકે ઓળખાય છે) સાથેના મૂલ્યોથી અલગ કરવામાં આવે, તો તે અનકોટેડ (ખાલી શબ્દો) હોઈ શકે છે. નીચેની લીટીઓ સમકક્ષ છેઃ% મનપસંદ = ('જો', 'લાલ', 'સેમ', 'વાદળી');% મનપસંદ = (જો => 'લાલ', સેમ => 'વાદળી'); હેશમાં વ્યક્તિગત મૂલ્યોને કર્લી કૌંસમાં અનુરૂપ કી પ્રદાન કરીને એક્સેસ કરવામાં આવે છે. $સિગિલ એક્સેસ કરેલ તત્વને સ્કેલર તરીકે ઓળખે છે. ઉદાહરણ તરીકે, $ફેવરિટ {જો} બરાબર 'લાલ' છે. હેશને તેના મૂલ્યોને વ્યક્તિગત રીતે સુયોજિત કરીને પણ શરૂ કરી શકાય છેઃ $ફેવરિટ {જો} = 'લાલ'; $ફેવરિટ {સેમ} = 'વાદળી'; $ફેવરિટ {ઓસ્કાર} = 'લીલો'; તેના બદલે @સિગિલનો ઉપયોગ કરીને બહુવિધ ઘટકોને એક્સેસ કરી શકાય છે (પરિણામને સૂચિ તરીકે ઓળખી શકાય છે). ઉદાહરણ તરીકે, @favorite {'જો', 'સેમ'} બરાબર ('લાલ', 'વાદળી') છે. ફાઇલહેન્ડલ્સ ફાઇલહેન્ડલ્સ સંસાધનોને વાંચવા અને લખવાની ઍક્સેસ પ્રદાન કરે છે. આ મોટાભાગે ડિસ્ક પરની ફાઇલો હોય છે, પરંતુ તે ઉપકરણ, પાઇપ અથવા તો સ્કેલર મૂલ્ય પણ હોઈ શકે છે. મૂળરૂપે, ફાઇલહેન્ડલ માત્ર પેકેજ ચલ સાથે જ બનાવી શકાય છે, તેને અન્ય ચલથી અલગ પાડવા માટે ALL _ CAPS પરંપરાનો ઉપયોગ કરી શકાય છે. પર્લ 5.6 અને નવું પણ સ્કેલર ચલ સ્વીકારે છે, જે નામવાળી ફાઇલહેન્ડલની જગ્યાએ અનામી ફાઇલહેન્ડલના સંદર્ભમાં સેટ (ઓટોવિવિફાઇડ) કરવામાં આવશે. ટાઇપગ્લોબ મૂલ્યો ટાઇપગ્લોબ મૂલ્ય એ પ્રતીક કોષ્ટક પ્રવેશ છે. ટાઇપગ્લોબ્સનો મુખ્ય ઉપયોગ પ્રતીક કોષ્ટક ઉપનામો બનાવવાનો છે. ઉદાહરણ તરીકેઃ * PI =\3.141592653; #સતત સ્કેલર બનાવે છે $PI * આ = * કે; #તમામ ડેટા પ્રકારો માટે ઉપનામો બનાવે છે 'આ' બધા ડેટા પ્રકારો માટે 'કે' એરે કાર્યો એરેમાં તત્વોની સંખ્યા ક્યાં તો સ્કેલર સંદર્ભમાં એરેનું મૂલ્યાંકન કરીને અથવા $#સિગિલની મદદથી નક્કી કરી શકાય છે. બાદમાં એરેમાં છેલ્લા તત્વની અનુક્રમણિકા આપે છે, તત્વોની સંખ્યા નહીં. સમીકરણો સ્કેલર (@array) અને ($#array + 1) સમકક્ષ છે. હેશ કાર્યો કેટલાક કાર્યો છે જે સંપૂર્ણ હેશ પર કામ કરે છે. કીઝ ફંક્શન હેશ લે છે અને તેની કીઓની સૂચિ પરત કરે છે. તેવી જ રીતે, વેલ્યુઝ ફંક્શન હેશના મૂલ્યો પરત કરે છે. નોંધ લો કે કીઓ અને મૂલ્યો સુસંગત પરંતુ મનસ્વી ક્રમમાં પરત કરવામાં આવે છે. #દરેક કૉલ આગામી કી/મૂલ્ય જોડી પરત કરે છે. #બધા મૂલ્યો આખરે પરત કરવામાં આવશે, પરંતુ તેમના ક્રમ #ની આગાહી કરી શકાતી નથી. જ્યારે (($નામ, $સરનામું) = દરેક% સરનામાં પુસ્તિકા) {પ્રિન્ટ કરો "$નામ $સરનામાં પર રહે છે";} #ઉપરની જેમ જ, પરંતુ મૂળાક્ષરો પ્રમાણે સૉર્ટ કરો મારા $નેક્સ્ટ _ નેમ (સૉર્ટ કીઓ% સરનામાં પુસ્તિકા) {પ્રિન્ટ કરો "$નેક્સ્ટ _ નેમ $એડ્રેસબુક {$નેક્સ્ટ _ નેમ} \n પર રહે છે";} કંટ્રોલ સ્ટ્રક્ચર્સ પર્લમાં વિવિધ પ્રકારની નિયંત્રણ રચનાઓ છે. તેમાં સી, જાવાસ્ક્રિપ્ટ અને જાવા પ્રોગ્રામિંગ ભાષાઓની જેમ બ્લોક-ઓરિએન્ટેડ કંટ્રોલ સ્ટ્રક્ચર્સ છે. શરતો કૌંસથી ઘેરાયેલી હોય છે, અને નિયંત્રિત બ્લોક કૌંસથી ઘેરાયેલા હોય છેઃ લેબલ જ્યારે (કોન્ડ) {.} લેબલ જ્યારે (કોન્ડ) {.} લેબલ માટે ચાલુ રાખો {.} લેબલ ફોરચ વાર (સૂચિ) {.} લેબલ ફોરચ વર (સૂચિ) {.} લેબલ ફોરચ વર (સૂચિ) {.} ચાલુ રાખો {.} જો (કોન્ડ) {.} જો (કોન્ડ) {.} અન્યથા {.} જો (કોન્ડ) {.} એલ્સિફ (કોન્ડ) {.} અન્યથા {.} જ્યાં માત્ર એક જ સ્ટેટમેન્ટ નિયંત્રિત થઈ રહ્યું હોય, સ્ટેટમેન્ટ મોડિફાયર્સ વધુ સંક્ષિપ્ત વાક્યરચના પ્રદાન કરે છેઃ સ્ટેટમેન્ટ જો કોન્ડ હોય તો સ્ટેટમેન્ટ; સ્ટેટમેન્ટ જો કોન્ડ ન હોય તો સ્ટેટમેન્ટ; સ્ટેટમેન્ટ જ્યાં સુધી કોન્ડ ન હોય ત્યાં સુધી સ્ટેટમેન્ટ; સ્ટેટમેન્ટ જ્યારે કોન્ડ; સ્ટેટમેન્ટ ફ્લો કંટ્રોલ કીવર્ડ્સ આગામી (સી 'સ કન્ટિન્યુને અનુરૂપ), છેલ્લું (સી' સ બ્રેકને અનુરૂપ), રીટર્ન અને રીડો એ સમીકરણો છે, જેથી તેનો ઉપયોગ શોર્ટ-સર્કિટ ઓપરેટરો સાથે કરી શકાય. પર્લમાં બે ગર્ભિત લૂપિંગ રચનાઓ પણ હોય છે, જેમાંના દરેકમાં બે સ્વરૂપો હોય છેઃ પરિણામો = ગ્રેપ {.} સૂચિ પરિણામો = ગ્રેપ એક્સપ્રે, સૂચિ પરિણામો = મેપ {.} સૂચિ પરિણામો = મેપ એક્સપ્રે, સૂચિ ગ્રેપ સૂચિના તમામ ઘટકોને પરત કરે છે જેના માટે નિયંત્રિત બ્લોક અથવા અભિવ્યક્તિ સાચું હોવાનું મૂલ્યાંકન કરે છે. નકશો સૂચિના દરેક ઘટક માટે નિયંત્રિત બ્લોક અથવા અભિવ્યક્તિનું મૂલ્યાંકન કરે છે અને પરિણામી મૂલ્યોની સૂચિ આપે છે. આ રચનાઓ સરળ કાર્યાત્મક પ્રોગ્રામિંગ શૈલીને સક્ષમ કરે છે. 5.10.0 પ્રકાશન સુધી, પર્લ 5 માં કોઈ સ્વીચ સ્ટેટમેન્ટ નહોતું. 5.10.0 પછીથી, મલ્ટી-વે શાખા સ્ટેટમેન્ટ જેને આપવામાં આવ્યું/ક્યારે ઉપલબ્ધ છે કહેવામાં આવે છે, જે નીચેનું સ્વરૂપ લે છેઃ v5.10 નો ઉપયોગ કરો; #આપેલ નવા 5.10 વિધેયોને આયાત કરવા માટે હાજર હોવું આવશ્યક છે (એક્સપીઆર) {જ્યારે (કોન્ડ) {.} ડિફોલ્ટ {.}} વાક્યરચનામાં, આ માળખું અન્ય ભાષાઓમાં મળતા નિવેદનોને બદલવા જેવું જ વર્તે છે, પરંતુ કેટલાક મહત્વપૂર્ણ તફાવતો સાથે. સૌથી મોટું એ છે કે સ્વીચ/કેસ સ્ટ્રક્ચર્સથી વિપરીત, સ્પષ્ટ રીતે વ્યાખ્યાયિત વિરામ આદેશોની રાહ જોવાને બદલે, પ્રથમ સફળ શાખા પછી આપવામાં આવેલ/જ્યારે નિવેદનો અમલને તોડી નાખે છે. તેનાથી વિપરીત, સ્વીચ વર્તણૂકનું અનુકરણ કરવા માટે સ્પષ્ટ સાતત્ય જરૂરી છે. પર્લ 5.10 નો ઉપયોગ ન કરતા લોકો માટે, પર્લ દસ્તાવેજીકરણ અન્ય નિયંત્રણ માળખાઓનો ઉપયોગ કરીને સમાન અસર હાંસલ કરવાની અડધો ડઝન રીતોનું વર્ણન કરે છે. એક સ્વિચ મોડ્યુલ પણ છે, જે બહેન ભાષા રાકુના નમૂના પર આધારિત કાર્યક્ષમતા પ્રદાન કરે છે. તે સ્રોત ફિલ્ટરનો ઉપયોગ કરીને અમલમાં મૂકવામાં આવે છે, તેથી તેનો ઉપયોગ બિનસત્તાવાર રીતે હતોત્સાહિત કરવામાં આવે છે. પર્લ ગોટો લેબલ સ્ટેટમેન્ટનો સમાવેશ કરે છે, પરંતુ તેનો ભાગ્યે જ ઉપયોગ થાય છે. પ્રવાહ નિયંત્રણ વિકલ્પોની પહોળાઈને કારણે, જે પરિસ્થિતિઓમાં અન્ય ભાષાઓમાં ગોટો બોલાવવામાં આવે છે તે પર્લમાં વારંવાર થતી નથી. ગોટો એન્ડ સબ સ્ટેટમેન્ટ પણ છે જે ટેલ કોલ કરે છે. તે વર્તમાન સબરૂટીનને સમાપ્ત કરે છે અને તરત જ નિર્દિષ્ટ સબરૂટીનને કૉલ કરે છે. આનો ઉપયોગ એવી પરિસ્થિતિઓમાં થાય છે જ્યાં કોલ કરનાર પર્લ કરતાં વધુ કાર્યક્ષમ સ્ટૅક મેનેજમેન્ટ કરી શકે છે (સામાન્ય રીતે કારણ કે વર્તમાન સ્ટેકમાં કોઈ ફેરફારની જરૂર નથી), અને ઊંડા પુનરાવર્તનમાં, ટેલ કૉલિંગ કામગીરી પર નોંધપાત્ર હકારાત્મક અસર કરી શકે છે, કારણ કે તે વળતર પર અવકાશ/સ્ટેક મેનેજમેન્ટના ઓવરહેડને ટાળે છે. સબરૂટિન સબરૂટિનને પેટા મુખ્ય શબ્દ સાથે વ્યાખ્યાયિત કરવામાં આવે છે અને તેમને ફક્ત નામ આપીને બોલાવવામાં આવે છે. જો પ્રશ્નમાં સબરૂટિન હજુ સુધી જાહેર કરવામાં આવ્યું નથી, તો આહ્વાન માટે ફંક્શનના નામ પછી કૌંસ અથવા તેની પહેલાં એમ્પરસેંડ (&) જરૂરી છે. પરંતુ કૌંસનો ઉપયોગ કરીને અને કૌંસ વિના પણ વર્તમાન સબરૂટીનની દલીલોને સ્પષ્ટપણે કૉલ કરેલા પર પસાર કરશે, અને કૌંસનો ઉપયોગ કરીને અને પ્રોટોટાઇપ્સને બાયપાસ કરશે. જો સબરૂટિનને પછીથી કોડ ફૂ (); & ફૂ; #માં વ્યાખ્યાયિત કરવામાં આવે તો અહીં સબરૂટિનને કૉલ કરવા માટે #પેરેન્થેસીસ જરૂરી છે (આ પણ કામ કરે છે, પરંતુ સબરૂટિનને પસાર કરાયેલી દલીલો સંબંધિત અન્ય પરિણામો ધરાવે છે) #સબરૂટિન સબફૂ {.} ફૂ વ્યાખ્યાયિત કરવું; #અહીં કૌંસની જરૂર નથી સબરૂટિન નામ પછી દલીલોની સૂચિ પ્રદાન કરી શકાય છે. દલીલો સ્કેલર, સૂચિ અથવા હેશ હોઈ શકે છે. ફૂ $x, @y,% z; સબરૂટિનના પરિમાણોને નંબર અથવા પ્રકાર તરીકે જાહેર કરવાની જરૂર નથી; હકીકતમાં, તેઓ કૉલથી કૉલમાં બદલાઈ શકે છે. પરિમાણોની કોઈપણ માન્યતા સબરૂટીનની અંદર સ્પષ્ટ રીતે કરવી આવશ્યક છે. એરેને તેમના ઘટકો સુધી વિસ્તૃત કરવામાં આવે છે; હેશને કી/મૂલ્ય જોડીઓની સૂચિમાં વિસ્તૃત કરવામાં આવે છે; અને સમગ્ર લોટને સ્કેલર્સની એક સપાટ સૂચિ તરીકે સબરૂટિનમાં પસાર કરવામાં આવે છે. જે પણ દલીલો પસાર કરવામાં આવે છે તે ખાસ એરે @_ માં સબરૂટીન માટે ઉપલબ્ધ છે. @_ ના તત્વો વાસ્તવિક દલીલોના સંદર્ભો છે; @_ ના તત્વને બદલવાથી અનુરૂપ દલીલમાં ફેરફાર થાય છે. @_ ના ઘટકોને સામાન્ય રીતે સબ્સ્ક્રિપ્ટ કરીને એક્સેસ કરી શકાય છે. $_ [0], $_ [1] જો કે, પરિણામી કોડ વાંચવો મુશ્કેલ હોઈ શકે છે, અને પરિમાણોમાં પાસ-બાય-રેફરન્સ શબ્દાર્થ હોય છે, જે અનિચ્છનીય હોઈ શકે છે. એક સામાન્ય રૂઢિપ્રયોગ એ છે કે નામના ચલની સૂચિમાં @_ સોંપવું. મારા ($x, $y, $z) = @_; આ નેમોનિક પરિમાણ નામો પૂરા પાડે છે અને પાસ-બાય-વેલ્યુ સિમેન્ટિક્સ લાગુ કરે છે. મારો મુખ્ય શબ્દ સૂચવે છે કે નીચેના ચલો લેક્સિકલી રીતે સમાવિષ્ટ બ્લોકમાં આવરી લેવામાં આવ્યા છે. બીજો રૂઢિપ્રયોગ @_ ના પરિમાણોને બંધ કરવાનો છે. આ ખાસ કરીને સામાન્ય છે જ્યારે સબરૂટીન માત્ર એક જ દલીલ લે છે અથવા ઓબ્જેક્ટ-ઓરિએન્ટેડ મોડ્યુલોમાં $સ્વ દલીલને સંભાળવા માટે. મારી $x = શિફ્ટ; સબરૂટિન્સ નામવાળી દલીલોનું અનુકરણ કરવા માટે હેશને @_ સોંપી શકે છે; સબરૂટિન્સ માટે પર્લ બેસ્ટ પ્રેક્ટિસિસમાં આની ભલામણ કરવામાં આવે છે જેમાં ક્યારેય ત્રણથી વધુ પરિમાણો હોવાની શક્યતા હોય છે. સબ ફંક્શન1 {મારું% આર્ગ = @_; પ્રિન્ટ કરો 'x' દલીલ હતી '$આર્ગસ {x}' \n ';} ફંક્શન1 (x => 23); સબરૂટિન મૂલ્યો પરત કરી શકે છે. 42, $x, @y,% z પરત કરો; જો સબરૂટિન રીટર્ન સ્ટેટમેન્ટ દ્વારા બહાર ન નીકળે, તો તે સબરૂટિન બોડીમાં મૂલ્યાંકન કરેલ છેલ્લી અભિવ્યક્તિ પરત કરે છે. વળતર મૂલ્યમાં એરે અને હેશને સ્કેલર્સની સૂચિમાં વિસ્તૃત કરવામાં આવે છે, જેમ તે દલીલો માટે હોય છે. પરત કરવામાં આવેલી અભિવ્યક્તિનું મૂલ્યાંકન સબરૂટીનના કૉલિંગ સંદર્ભમાં કરવામાં આવે છે; આ અજાણ લોકોને આશ્ચર્યચકિત કરી શકે છે. પેટા સૂચિ {(4,5,6)} પેટા એરે {@x = (4,5,6); @x} $x = સૂચિ; #સૂચિનું છેલ્લું તત્વ $x = એરે આપે છે; #3 આપે છે-સૂચિમાં તત્વોની સંખ્યા @x = સૂચિ; #આપે છે (4,5,6) @x = એરે; #આપે છે (4,5,6) એક સબરૂટિન તેના કૉલિંગ સંદર્ભને વાન્ડેરે કાર્ય સાથે શોધી શકે છે. સબ અથવા તો {રીટર્ન વાન્ડેરે? (1,2): 'નારંગી';} $x = ક્યાં તો; #"નારંગી" @x = ક્યાં તો આપે છે; #આપે છે (1,2) અનામિક કાર્યો નિયમિત સમીકરણો પર્લ ભાષામાં નિયમિત સમીકરણો (RE, અથવા રેજેક્સ) લખવા માટે વિશિષ્ટ વાક્યરચના શામેલ છે, અને દુભાષિયો નિયમિત સમીકરણો સાથે શબ્દમાળાઓ મેળ કરવા માટે એક એન્જિન ધરાવે છે. નિયમિત-અભિવ્યક્તિ એન્જિન બેકટ્રેકિંગ અલ્ગોરિધમનો ઉપયોગ કરે છે, જે તેની ક્ષમતાઓને સરળ પેટર્ન મેચિંગથી સ્ટ્રિંગ કેપ્ચર અને અવેજી સુધી વિસ્તરે છે. નિયમિત-અભિવ્યક્તિ એન્જિન હેનરી સ્પેન્સર દ્વારા લખાયેલા રેગેક્સ પરથી લેવામાં આવ્યું છે. પર્લ રેગ્યુલર-એક્સપ્રેશન વાક્યરચના મૂળરૂપે યુનિક્સ વર્ઝન 8 રેગ્યુલર એક્સપ્રેશનમાંથી લેવામાં આવી હતી. જો કે, તે પર્લની પ્રથમ રજૂઆત પહેલાં અલગ થઈ ગયું હતું અને ત્યારથી તે વધુ સુવિધાઓનો સમાવેશ કરવા માટે વિકસ્યું છે. ઘણી અન્ય ભાષાઓ અને એપ્લિકેશનો હવે પી. એચ. પી., રુબી, જાવા, માઇક્રોસોફ્ટનું. નેટ ફ્રેમવર્ક અને અપાચે એચ. ટી. ટી. પી. સર્વર જેવી પોસિક્સ નિયમિત અભિવ્યક્તિઓ પર પર્લ સુસંગત નિયમિત અભિવ્યક્તિઓ અપનાવી રહી છે. ઇતિહાસને કારણે નિયમિત-અભિવ્યક્તિ વાક્યરચના અત્યંત સઘન છે. પ્રથમ નિયમિત-અભિવ્યક્તિ બોલીઓ ગ્લોબ્સ કરતાં થોડી વધુ અભિવ્યક્ત હતી, અને વાક્યરચનાની રચના એવી રીતે કરવામાં આવી હતી કે અભિવ્યક્તિ તે જે લખાણ સાથે મેળ ખાય છે તેના જેવી જ હોય. આનો અર્થ એ હતો કે થોડા સમર્થિત દાવાઓને વ્યક્ત કરવા માટે એક વિરામચિહ્ન અક્ષર અથવા સીમાંકન અક્ષરોની જોડી કરતાં વધુનો ઉપયોગ કરવો નહીં. સમય જતાં, નિયમિત અભિવ્યક્તિઓની અભિવ્યક્તિમાં જબરદસ્ત વધારો થયો, પરંતુ વાક્યરચના ડિઝાઇનમાં ક્યારેય સુધારો કરવામાં આવ્યો ન હતો અને વિરામચિહ્નો પર આધાર રાખવાનું ચાલુ રાખ્યું હતું. પરિણામે, નિયમિત અભિવ્યક્તિઓ રહસ્યમય અને અત્યંત ગાઢ હોઈ શકે છે. ઉપયોગો m// (મેળ) સંચાલક નિયમિત-અભિવ્યક્તિ મેળ રજૂ કરે છે. (જો તેને સ્લેશ દ્વારા સીમાંકિત કરવામાં આવે, તો અહીંના તમામ ઉદાહરણોની જેમ, ટૂંકાણ માટે અગ્રણી m ને અવગણવામાં આવી શકે છે. જો m હાજર હોય, તો નીચેના તમામ ઉદાહરણોની જેમ, સ્લેશની જગ્યાએ અન્ય સીમાંકનનો ઉપયોગ કરી શકાય છે.) સૌથી સરળ કિસ્સામાં, $x = ~/abc/; જેવી અભિવ્યક્તિ સાચું હોવાનું મૂલ્યાંકન કરે છે જો અને માત્ર ત્યારે જ જો શબ્દમાળા $x નિયમિત અભિવ્યક્તિ abc સાથે મેળ ખાય. બીજી બાજુ, s// (અવેજી) ઓપરેટર, શોધ-અને-બદલી કામગીરીને સ્પષ્ટ કરે છેઃ $x = ~ s/abc/aBc/; #b ને અપકેસ કરો નિયમિત અભિવ્યક્તિઓનો બીજો ઉપયોગ સ્પ્લિટ ફંક્શન માટે સીમાંકનને સ્પષ્ટ કરવાનો છેઃ @words = સ્પ્લિટ/,/, $લાઇન; સ્પ્લિટ ફંક્શન સ્ટ્રિંગના ભાગોની સૂચિ બનાવે છે જે નિયમિત અભિવ્યક્તિ સાથે મેળ ખાય છે. આ ઉદાહરણમાં, એક લીટીને તેના પોતાના અલ્પવિરામથી અલગ કરેલા ભાગોની સૂચિમાં વહેંચવામાં આવે છે, અને આ સૂચિ પછી @words એરેને સોંપવામાં આવે છે. વાક્યરચના સંશોધકો પર્લ નિયમિત સમીકરણો સંશોધકો લઈ શકે છે. આ એક-અક્ષર પ્રત્યય છે જે અભિવ્યક્તિનો અર્થ સુધારે છેઃ $x = ~/abc/i; #કેસ-અસંવેદનશીલ પેટર્ન મેળ ખાય છે $x = ~ s/abc/aBc/g; #વૈશ્વિક શોધ અને બદલો કારણ કે નિયમિત અભિવ્યક્તિઓનું સઘન વાક્યરચના તેમને ગાઢ અને રહસ્યમય બનાવી શકે છે, પ્રોગ્રામરોને વધુ સ્પષ્ટ નિયમિત અભિવ્યક્તિઓ લખવામાં મદદ કરવા માટે/x સંશોધકને પર્લમાં ઉમેરવામાં આવ્યું હતું. તે પ્રોગ્રામરોને નિયમિત અભિવ્યક્તિઓમાં સફેદ જગ્યા અને ટિપ્પણીઓ મૂકવાની મંજૂરી આપે છેઃ $x = ~/a #મેળ ખાય છે 'a'. #પછી કોઈપણ અક્ષર c #પછી 'c' અક્ષર/x દ્વારા અનુસરવામાં આવે છે; નિયમિત અભિવ્યક્તિના કેપ્ચરિંગ ભાગો કૌંસમાં બંધ કરી શકાય છે; મેળ ખાતા શબ્દમાળાના અનુરૂપ ભાગો કબજે કરવામાં આવે છે. કેપ્ચર કરેલા શબ્દમાળાઓ ક્રમિક બિલ્ટ-ઇન વેરિયેબલ્સ $1, $2, $3,. ને સોંપવામાં આવે છે અને કેપ્ચર કરેલા શબ્દમાળાઓની સૂચિ મેચના મૂલ્ય તરીકે પરત કરવામાં આવે છે. $x = ~/a (. ) c/; #'a' અને 'c' વચ્ચેના અક્ષરને કેપ્ચર કરો $1, $2, $3,. નો ઉપયોગ કોડમાં પછીથી કરી શકાય છે. પર્લ નિયમિત સમીકરણો પણ બિલ્ટ-ઇન અથવા વપરાશકર્તા-નિર્ધારિત કાર્યોને કેપ્ચર કરેલ મેચ પર લાગુ કરવા માટે પરવાનગી આપે છે,/e મોડિફાયરનો ઉપયોગ કરીનેઃ $x = "નારંગી"; $x = ~ s/(ge)/uc ($1)/e; #નારંગી $x. = $1; #અગાઉના નિવેદનમાં મેળની સામગ્રી સાથે $x ઉમેરોઃ નારંગી ઓબ્જેક્ટ્સ પર્લમાં ઑબ્જેક્ટ-ઓરિએન્ટેડ કોડ લખવાની ઘણી રીતો છે. સૌથી મૂળભૂત છે "આશીર્વાદિત" સંદર્ભોનો ઉપયોગ કરવો. આ આપેલ પેકેજ સાથે જોડાયેલા કોઈપણ પ્રકારના સંદર્ભને ઓળખીને કામ કરે છે, અને પેકેજ આશીર્વાદિત સંદર્ભ માટેની પદ્ધતિઓ પ્રદાન કરે છે. ઉદાહરણ તરીકે, દ્વિ-પરિમાણીય બિંદુને આ રીતે વ્યાખ્યાયિત કરી શકાય છેઃ પેટા બિંદુઃઃ નવું {#અહીં, બિંદુ-> નવું (4,5) પરિણામે $વર્ગ 'બિંદુ' બનશે. #તે પેટા વર્ગીકરણને ટેકો આપવા માટે ચલ છે (પરલોપ મેનપેજ જુઓ). મારો ($વર્ગ, $x, $y) = @_; બ્લેસ [$x, $y], $વર્ગ; #ઇમ્પ્લિસિટ રીટર્ન} પેટા બિંદુઃ અંતર {મારો ($સેલ્ફ, $થી) = @_; મારો ($dx, $dy) = ($સેલ્ફ [0]-$$થી [0], $સેલ્ફ [1]-$$થી [1]); sqrt ($dx * $dx + $dy * $dy);} આ વર્ગનો ઉપયોગ ઉદાહરણો બનાવવા માટે નવા () નો ઉપયોગ કરીને અને તે ઉદાહરણો પર અંતરનો ઉપયોગ કરીને કરી શકાય છે. મારી $p1 = પોઈન્ટ-> નવી (3,4); મારી $p2 = પોઈન્ટ-> નવી (0,0); પ્રિન્ટ $p1-> અંતર ($p2); #પ્રિન્ટ 5 ઘણી આધુનિક પર્લ એપ્લિકેશનો મૂઝ ઓબ્જેક્ટ સિસ્ટમનો ઉપયોગ કરે છે. મૂઝ એ વર્ગની ટોચ પર બનેલું છેઃ એમ. ઓ. પી., એક મેટા-ઓબ્જેક્ટ પ્રોટોકોલ છે, જે મૂઝનો ઉપયોગ કરતા તમામ વર્ગો માટે સંપૂર્ણ આત્મનિરીક્ષણ પ્રદાન કરે છે. આમ તમે વર્ગોને તેમના લક્ષણો, માતાપિતા, બાળકો, પદ્ધતિઓ વગેરે વિશે પૂછી શકો છો. એક સરળ API નો ઉપયોગ કરીને. મૂઝ વર્ગોઃ એક વર્ગમાં શૂન્ય અથવા વધુ વિશેષતાઓ હોય છે. વર્ગમાં શૂન્ય અથવા વધુ પદ્ધતિઓ હોય છે. વર્ગમાં શૂન્ય અથવા વધુ સુપરક્લાસ (ઉર્ફ પેરેન્ટ ક્લાસ) હોય છે. એક વર્ગ તેના સુપરક્લાસ (એસ) માંથી વારસામાં મળે છે. વર્ગ શૂન્ય અથવા વધુ ભૂમિકાઓ કરે છે, જે પેટા વર્ગીકરણ વિના વર્ગોમાં પૂર્વ-નિર્ધારિત કાર્યક્ષમતા ઉમેરવાની ક્ષમતા ઉમેરે છે. વર્ગમાં કન્સ્ટ્રક્ટર અને ડિસ્ટ્રક્ટર હોય છે. વર્ગમાં મેટાક્લાસ હોય છે. વર્ગમાં શૂન્ય અથવા વધુ પદ્ધતિ સંશોધકો હોય છે. આ સંશોધકો તેની પોતાની પદ્ધતિઓ, તેના પૂર્વજો પાસેથી વારસામાં મળેલી પદ્ધતિઓ અથવા ભૂમિકાઓ દ્વારા પૂરી પાડવામાં આવતી પદ્ધતિઓ પર લાગુ થઈ શકે છે. મૂઝની ભૂમિકાઓઃ ભૂમિકા એ એવી વસ્તુ છે જે વર્ગ કરે છે, કંઈક અંશે અન્ય ઓબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ ભાષાઓમાં મિક્સિન અથવા ઇન્ટરફેસોની જેમ. મિક્સિન અને ઇન્ટરફેસથી વિપરીત, ભૂમિકાઓ વ્યક્તિગત ઓબ્જેક્ટ ઉદાહરણો પર લાગુ કરી શકાય છે. ભૂમિકામાં શૂન્ય અથવા વધુ વિશેષતાઓ હોય છે. ભૂમિકામાં શૂન્ય અથવા વધુ પદ્ધતિઓ હોય છે. ભૂમિકામાં શૂન્ય અથવા વધુ પદ્ધતિ સંશોધકો હોય છે. ભૂમિકામાં શૂન્ય અથવા વધુ જરૂરી પદ્ધતિઓ હોય છે. ઉદાહરણો મૂઝએક્સનો ઉપયોગ કરીને લખાયેલા વર્ગનું ઉદાહરણ છેઃ મૂઝએક્સનો ઉપયોગ કરો; મૂઝએક્સનો ઉપયોગ કરો; ડિક્લેયર કરો; વર્ગ પોઇન્ટ3ડી પોઇન્ટને વિસ્તરે છે {પાસે 'ઝેડ' => છે (ઇસા => 'નુમ', => 'આરડબલ્યુ' છે); સ્પષ્ટ પછી {$સેલ્ફ-> ઝેડ (0);} પદ્ધતિ સેટ _ ટુ (નુમ $એક્સ, નુમ $વાય, નુમ $ઝેડ) {$સેલ્ફ-> એક્સ ($એક્સ); $સેલ્ફ-> વાય ($વાય); $સેલ્ફ-> ઝેડ ($ઝેડ);} આ પોઇન્ટ3ડી નામનો વર્ગ છે જે મૂઝના ઉદાહરણોમાં સમજાવેલ પોઇન્ટ નામના અન્ય વર્ગને વિસ્તરે છે. તે તેના બેઝ ક્લાસમાં એક નવું એટ્રિબ્યુટ z ઉમેરે છે, સેટ _ ટુ પદ્ધતિને ફરીથી વ્યાખ્યાયિત કરે છે અને પદ્ધતિને સ્પષ્ટ રીતે વિસ્તરે છે. સંદર્ભો બાહ્ય લિંક્સ પર્લ ટ્યુટોરિયલ્સ લર્ન પર્લ લગભગ 2 કલાક 30 મિનિટમાં પર્લ મોન્ક્સ એક સમુદાય પર્લ જ્ઞાન અને કોડિંગ ટીપ્સ શેર કરવા માટે પ્રતિબદ્ધ છે. ઉદાહરણ તરીકે પર્લ કોડ પર્લ સાથેના લેખો