Perl language structure
பெர்ல் நிரலாக்க மொழியின் கட்டமைப்பு மொழியின் சொல்லியல் விதிகள் மற்றும் நிரல்கள் ஒழுங்கமைக்கப்படும் பொதுவான வழிகள் ஆகிய இரண்டையும் உள்ளடக்கியது. பெர்லின் வடிவமைப்பு தத்துவம் பொதுவாக மேற்கோள் காட்டப்பட்ட குறிக்கோளில் வெளிப்படுத்தப்படுகிறது "அதைச் செய்ய ஒன்றுக்கு மேற்பட்ட வழிகள் உள்ளன". பல முன்னுதாரணங்களாக, மாறும் வகையில் தட்டச்சு செய்யப்பட்ட மொழியாக, பெர்ல் நிரல் வடிவமைப்பில் அதிக அளவு நெகிழ்வுத்தன்மையை அனுமதிக்கிறது. பெர்ல் மாடுலரைசேஷனையும் ஊக்குவிக்கிறது; இது அதன் யுனிக்ஸ் வேர்களின் கூறு அடிப்படையிலான வடிவமைப்பு கட்டமைப்புக்கு காரணமாகும், மேலும் இது 100,000 க்கும் மேற்பட்ட தொகுதிகளின் சமூகத்தால் பராமரிக்கப்படும் களஞ்சியமான CPAN காப்பகத்தின் அளவிற்கு பொறுப்பாகும். பெர்லில், குறைந்தபட்ச ஹலோ வேர்ல்ட் நிரலை பின்வருமாறு எழுதலாம்ஃ "ஹலோ, வேர்ல்ட்! \n" ஐ அச்சிடவும் இது ஹலோ, வேர்ல்ட்! என்ற சரத்தை அச்சிடுகிறது. ஒரு புதிய வரி, ஒரு n எழுத்தால் குறியீடாக வெளிப்படுத்தப்படுகிறது, அதன் விளக்கம் முந்தைய தப்பிக்கும் எழுத்தால் (ஒரு பேக்ஸ்லாஷ்) மாற்றப்படுகிறது. பதிப்பு 5.10 முதல், புதிய 'சொல்லுங்கள்' உள்ளமைக்கப்பட்ட அதே விளைவை இன்னும் எளிமையாக உருவாக்குகிறதுஃ "ஹலோ, வேர்ல்ட்!" ஒரு முழு பெர்ல் நிரலையும் பெர்லின் கட்டளை-வரி அளவுருவாகக் குறிப்பிடலாம், எனவே அதே நிரலை கட்டளை வரியிலிருந்தும் செயல்படுத்தலாம் (எடுத்துக்காட்டாக யுனிக்ஸில் காட்டப்பட்டுள்ளது): $perl-e 'பிரிண்ட்' ஹலோ, வேர்ல்ட்! \n 'நிரலின் நியதி வடிவம் சற்று அதிக சொற்களால் ஆனதுஃ #!/usr/sin/perl பிரிண்ட்' ஹலோ, வேர்ல்ட்! \n '; ஹாஷ் மார்க் எழுத்து பெர்லில் ஒரு கருத்தை அறிமுகப்படுத்துகிறது, இது குறியீடு வரிசையின் இறுதி வரை இயங்குகிறது மற்றும் தொகுப்பாளரால் புறக்கணிக்கப்படுகிறது (விண்டோஸ் தவிர). இங்கே பயன்படுத்தப்படும் கருத்து ஒரு சிறப்பு வகையானதுஃ இது ஷெபாங் வரி என்று அழைக்கப்படுகிறது. இது யுனிக்ஸ் போன்ற இயக்க முறைமைகளுக்கு பெர்ல் மொழிபெயர்ப்பாளரைக் கண்டுபிடிக்கச் சொல்கிறது, இதனால் பெர்லை வெளிப்படையாகக் குறிப்பிடாமல் நிரலை அழைக்க முடியும். (மைக்ரோசாப்ட் விண்டோஸ் கணினிகளில், பெர்ல் நிரல்கள் பொதுவாக. பி. எல் நீட்டிப்பை பெர்ல் மொழிபெயர்ப்பாளருடன் இணைப்பதன் மூலம் அழைக்கப்படுகின்றன என்பதை நினைவில் கொள்க. அத்தகைய சூழ்நிலைகளைச் சமாளிக்க, பெர்ல் ஷெபாங் வரியைக் கண்டறிந்து அதை சுவிட்சுகளுக்காக பகுப்பாய்வு செய்கிறது.) நியம வடிவத்தில் இரண்டாவது வரியில் ஒரு செமிகோலன் உள்ளது, இது பெர்ல் இல் உள்ள அறிக்கைகளைப் பிரிக்கப் பயன்படுகிறது. ஒரு தொகுதி அல்லது கோப்பில் ஒரே ஒரு அறிக்கையுடன், ஒரு பிரிப்பான் தேவையற்றது, எனவே அதை நிரலின் குறைந்தபட்ச வடிவத்திலிருந்து தவிர்க்கலாம்-அல்லது பொதுவாக எந்த தொகுதி அல்லது கோப்பிலும் உள்ள இறுதி அறிக்கையிலிருந்து. நியதி வடிவம் அதை உள்ளடக்கியது, ஏனென்றால் ஒவ்வொரு அறிக்கையையும் தேவையற்றபோது கூட நிறுத்துவது பொதுவானது, ஏனெனில் இது எடிட்டிங்கை எளிதாக்குகிறதுஃ குறியீட்டை ஒரு தொகுதி அல்லது கோப்பின் முடிவில் செமிகோலன்களை சரிசெய்யாமல் சேர்க்கலாம் அல்லது நகர்த்தலாம். பெர்லின் பதிப்பு 5.10 அதன் வெளியீட்டில் ஒரு புதிய வரி எழுத்தை மறைமுகமாக இணைக்கும் ஒரு சொல் செயல்பாட்டை அறிமுகப்படுத்துகிறது, இது குறைந்தபட்ச "ஹலோ வேர்ல்ட்" நிரலை இன்னும் குறுகியதாக ஆக்குகிறதுஃ புதிய 5.10 செயல்பாடுகளை இறக்குமதி செய்ய 5.010 ஐப் பயன்படுத்தவும்; #இருக்க வேண்டும், அது 5.010 அல்ல என்பதைக் கவனியுங்கள். தரவு வகைகள் பேர்ல் பல அடிப்படை தரவு வகைகளைக் கொண்டுள்ளது. மிகவும் பொதுவாகப் பயன்படுத்தப்படும் மற்றும் விவாதிக்கப்படும் அளவீடுகள், வரிசைகள், ஹாஷ்கள், ஃபைல் ஹேண்டில்கள் மற்றும் சப்ரூட்டின்கள்ஃ அளவுகோல் மதிப்புகள் சரம் மதிப்புகள் (இலக்கியங்கள்) மேற்கோள்களால் இணைக்கப்பட வேண்டும். இரட்டை மேற்கோள்களில் ஒரு சரத்தை மூடுவது சரத்தில் பெயர்கள் தோன்றும் மாறிகளின் மதிப்புகளை சரத்தில் உள்ள மாறி பெயரை (அல்லது இடைக்கணிப்பு செய்யப்பட வேண்டும்) தானாக மாற்ற அனுமதிக்கிறது. ஒற்றை மேற்கோள்களில் ஒரு சரத்தை மூடுவது மாறி இடைக்கணிப்பைத் தடுக்கிறது. எடுத்துக்காட்டாக, $பெயர் "ஜிம்" என்றால்ஃ அச்சிடுங்கள் ("எனது பெயர் $பெயர்") "எனது பெயர் ஜிம்" (இரட்டை மேற்கோள்களுக்குள் இடைக்கணிப்பு), ஆனால் அச்சிடுங்கள் ('எனது பெயர் $பெயர்') "எனது பெயர் $பெயர்" (ஒற்றை மேற்கோள்களுக்குள் இடைக்கணிப்பு இல்லை). ஒரு சரத்தில் இரட்டை மேற்கோள் குறியீட்டைச் சேர்க்க, அதற்கு முன் ஒரு பேக்ஸ்லாஷ் அல்லது சரத்தை ஒற்றை மேற்கோள்களில் இணைக்கவும். ஒற்றை மேற்கோள் குறியீட்டைச் சேர்க்க, அதற்கு முன் ஒரு பேக்ஸ்லாஷ் அல்லது இரட்டை மேற்கோள்களில் சரத்தை இணைக்கவும். சரங்களை q மற்றும் qq மேற்கோள் போன்ற இயக்கிகளுடன் மேற்கோள் காட்டலாம்ஃ 'இது' மற்றும் q (இது) ஒரே மாதிரியானவை, '$இது' மற்றும் qq ($இது) ஒரே மாதிரியானவை. இறுதியாக, இங்கே ஆவணங்களைப் பயன்படுத்தி மல்டி லைன் சரங்களை வரையறுக்கலாம்ஃ $மல்டி லைன் _ ஸ்ட்ரிங் = <<EOF; இது எனது மல்டி லைன் செய்யப்பட்ட சரம் குறிப்பு, நான் அதை "EOF" என்ற வார்த்தையுடன் முடிக்கிறேன். EOF எண்களுக்கு (எண் மாறிலிகள்) மேற்கோள் தேவையில்லை. பெர்ல் எண்களை சரங்களாக மாற்றும் மற்றும் அவை பயன்படுத்தப்படும் சூழலைப் பொறுத்து நேர்மாறாகவும் இருக்கும். சரங்கள் எண்களாக மாற்றப்படும்போது, சரங்களின் பின்னோக்கிய எண் அல்லாத பகுதிகள் நிராகரிக்கப்படுகின்றன. ஒரு சரத்தின் முன்னணி பகுதி எண் அல்ல என்றால், சரம் 0 எண்ணாக மாற்றப்படும். பின்வரும் எடுத்துக்காட்டில், $n மற்றும் $m சரங்கள் எண்களாக கருதப்படுகின்றன. இந்த குறியீடு '5' என்ற எண்ணை அச்சிடுகிறது. மாறிகளின் மதிப்புகள் அப்படியே இருக்கும். பெர்ல் இல், + எப்போதும் எண் கூட்டல் ஆபரேட்டர் என்பதை நினைவில் கொள்க. சரம் இணைத்தல் ஆபரேட்டர் என்பது காலம். $n = '3 ஆப்பிள்கள்'; $m = '2 ஆரஞ்சு'; $n + $m ஐ அச்சிடுங்கள்; பின்ன மதிப்புகளை முழு எண் மதிப்புகளுக்கு வட்டமிடுவதற்கு செயல்பாடுகள் வழங்கப்படுகின்றனஃ பின்னப் பகுதியிலிருந்து இன்ட் சாப்ஸ், பூஜ்ஜியத்தை நோக்கி வட்டமிடுகிறது; போஸிக்ஸ்ஃஃ கூரை மற்றும் போஸிக்ஸ்ஃ: தரை சுற்று எப்போதும் மேலே மற்றும் எப்போதும் கீழே, முறையே. பிரிண்ட்எஃப் "% எஃப்" அல்லது ஸ்ப்ரின்ட்எஃப் "% எஃப்" இன் எண்-க்கு-சரம் மாற்றுவது, வங்கியாளர்களின் வட்டத்தைப் பயன்படுத்துகிறது. பெர்ல் நிபந்தனை அறிக்கைகளை மதிப்பிடுவதில் பயன்படுத்தும் ஒரு பூலியன் சூழலையும் கொண்டுள்ளது. பின்வரும் மதிப்புகள் அனைத்தும் பெர்ல் இல் தவறானவை என்று மதிப்பிடப்படுகின்றனஃ $தவறானது = 0; #எண் பூஜ்ஜியம் $தவறானது = 0.0; #பூஜ்ஜியம் என்ற எண் மிதவை $தவறானது = 0b0; #பைனரியில் பூஜ்ஜியம் என்ற எண் தவறானது = 0x0; #ஹெக்ஸாடெசிமல் இல் பூஜ்ஜியம் என்ற எண் தவறானது = '0'; #சரம் பூஜ்ஜியம் என்ற எண் தவறானது = ""; #வெற்று சரம் தவறானது = (); #வெற்று பட்டியல் தவறானது = undef; #undef $தவறானது என்பதிலிருந்து திரும்பும் மதிப்பு "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] என்பது ("மே", "ஜூன்", "ஜூலை"). ஹாஷ் மதிப்புகள் பெர்ல் புரோகிராமர்கள் முக்கிய/மதிப்பு ஜோடிகளின் பட்டியலிலிருந்து ஒரு ஹாஷ் (அல்லது துணை வரிசை) ஐ துவக்கலாம். விசைகள் ஒரு காற்புள்ளிக்கு பதிலாக => ஆபரேட்டருடன் (சில நேரங்களில் கொழுப்பு கமா என்று அழைக்கப்படுகிறது) மதிப்புகளிலிருந்து பிரிக்கப்பட்டால், அவை மேற்கோள் காட்டப்படாமல் (வெற்று வார்த்தைகள்) இருக்கலாம். பின்வரும் கோடுகள் சமமானவைஃ% பிடித்த = ('ஜோ', 'சிவப்பு', 'சாம்', 'நீலம்');% பிடித்த = (ஜோ => 'சிவப்பு', சாம் => 'நீலம்'); ஒரு ஹாஷில் உள்ள தனிப்பட்ட மதிப்புகள் சுருள் பிரேஸ்களில் தொடர்புடைய விசையை வழங்குவதன் மூலம் அணுகப்படுகின்றன. $sigil அணுகப்பட்ட உறுப்பை ஒரு அளவுகோலாக அடையாளம் காட்டுகிறது. எடுத்துக்காட்டாக, 'பிடித்த ஜோ' என்பது 'சிவப்பு' என்பதற்கு சமம். ஒரு ஹாஷ் அதன் மதிப்புகளை தனித்தனியாக அமைப்பதன் மூலமும் துவக்கப்படலாம்ஃ $பிடித்த {ஜோ} = 'சிவப்பு'; $பிடித்த {சாம்} = 'நீலம்'; $பிடித்த {ஆஸ்கர்} = 'பச்சை'; அதற்கு பதிலாக @சிகில் பயன்படுத்தி பல கூறுகளை அணுகலாம் (முடிவை ஒரு பட்டியலாக அடையாளம் காணும்). எடுத்துக்காட்டாக, @favorite {'ஜோ', 'சாம்'} சமம் ('சிவப்பு', 'நீலம்'). கோப்பு கையாளுதல்கள் கோப்பு கையாளுதல்கள் வளங்களைப் படிக்கவும் எழுதவும் அணுகலை வழங்குகின்றன. இவை பெரும்பாலும் வட்டில் உள்ள கோப்புகள், ஆனால் ஒரு சாதனம், குழாய் அல்லது அளவிடக்கூடிய மதிப்பாகவும் இருக்கலாம். முதலில், கோப்பு கையாளுதல்களை தொகுப்பு மாறிகளுடன் மட்டுமே உருவாக்க முடியும், மற்ற மாறிகளிலிருந்து வேறுபடுத்துவதற்கு ALL _ CAPS மரபுகளைப் பயன்படுத்துகிறது. பேர்ல் 5.6 மற்றும் புதியது ஒரு அளவிடக்கூடிய மாறியை ஏற்றுக்கொள்கின்றன, இது பெயரிடப்பட்ட கோப்பு கையாளுதலுக்குப் பதிலாக அநாமதேய கோப்பு கையாளுதலுக்கான குறிப்புக்கு அமைக்கப்படும் (தானாக செயல்படுத்தப்படும்). தட்டச்சுக் குளாப் மதிப்புகள் ஒரு தட்டச்சுக் குளாப் மதிப்பு என்பது ஒரு குறியீட்டு அட்டவணை உள்ளீடு ஆகும். தட்டச்சுக் குளாப்களின் முக்கிய பயன்பாடு குறியீட்டு அட்டவணை மாற்றுப்பெயர்களை உருவாக்குவதாகும். எடுத்துக்காட்டாகஃ * PI =\3.141592653; #நிலையான அளவிடுதலை உருவாக்குகிறது $PI * இது = * அது; #அனைத்து தரவு வகைகளுக்கும் மாற்றுப்பெயர்களை உருவாக்குகிறது 'இது' அனைத்து தரவு வகைகளுக்கும் 'அதாவது' வரிசை செயல்பாடுகள் ஒரு வரிசையில் உள்ள உறுப்புகளின் எண்ணிக்கையை அளவிடுதல் சூழலில் வரிசையை மதிப்பிடுவதன் மூலம் அல்லது $#சிகில் உதவியுடன் தீர்மானிக்க முடியும். பிந்தையது வரிசையில் கடைசி உறுப்பின் குறியீட்டை வழங்குகிறது, உறுப்புகளின் எண்ணிக்கை அல்ல. அளவிடுதல் (@array) மற்றும் ($#array + 1) ஆகிய வெளிப்பாடுகள் சமமானவை. ஹாஷ் செயல்பாடுகள் முழு ஹாஷ்களிலும் செயல்படும் சில செயல்பாடுகள் உள்ளன. விசைகள் செயல்பாடு ஒரு ஹாஷ் எடுத்து அதன் விசைகளின் பட்டியலைத் திருப்பித் தருகிறது. இதேபோல், மதிப்புகள் செயல்பாடு ஒரு ஹாஷ் மதிப்புகளைத் தருகிறது. விசைகள் மற்றும் மதிப்புகள் ஒரு நிலையான ஆனால் தன்னிச்சையான வரிசையில் திருப்பித் தரப்படுகின்றன என்பதை நினைவில் கொள்க. #ஒவ்வொரு அழைப்புக்கும் அடுத்த விசை/மதிப்பு ஜோடி கிடைக்கும். #அனைத்து மதிப்புகளும் இறுதியில் திருப்பித் தரப்படும், ஆனால் அவற்றின் வரிசை #ஐ கணிக்க முடியாது. அதே நேரத்தில் (($பெயர், $முகவரி) = ஒவ்வொரு% முகவரிப்புத்தகமும்) {அச்சிடு "$பெயர் $முகவரியில் வாழ்கிறது";} #மேலே உள்ளதைப் போலவே, ஆனால் அகரவரிசைப்படி வரிசைப்படுத்தப்பட்ட எனது $அடுத்த பெயர் (வரிசைப்படுத்தப்பட்ட விசைகள்% முகவரிப்புத்தகம்) {அச்சிடு "$அடுத்த பெயர் $முகவரிப்புத்தகத்தில் வாழ்கிறது {$அடுத்த பெயர் \n";} கட்டுப்பாட்டு கட்டமைப்புகள் பேர்ல் பல வகையான கட்டுப்பாட்டு கட்டமைப்புகளைக் கொண்டுள்ளது. இது சி, ஜாவாஸ்கிரிப்ட் மற்றும் ஜாவா நிரலாக்க மொழிகளைப் போலவே தொகுதி சார்ந்த கட்டுப்பாட்டு கட்டமைப்புகளைக் கொண்டுள்ளது. நிபந்தனைகள் அடைப்புக்குறிகளால் சூழப்பட்டுள்ளன, மேலும் கட்டுப்படுத்தப்பட்ட தொகுதிகள் பிரேஸ்களால் சூழப்பட்டுள்ளனஃ லேபிள் போது (காண்ட்) {.} லேபிள் போது (காண்ட்) {.} லேபிள் தொடர்கிறது {.} லேபிள் ஃபோரச் வர் (பட்டியல்) {.} லேபிள் ஃபோரச் வர் (பட்டியல்) {.} தொடர்கிறது {.} என்றால் (காண்ட்) {.} என்றால் (காண்ட்) {.} இல்லையெனில் {.} என்றால் (காண்ட்) {.} எலிசிஃப் (காண்ட்) {.} வேறு {.} ஒரு ஒற்றை அறிக்கை மட்டுமே கட்டுப்படுத்தப்படும் இடத்தில், ஸ்டேட்மென்ட் மாற்றிகள் அதிக கச்சிதமான தொடரியல் வழங்குகின்றனஃ ஸ்டேட்மென்ட் என்றால் காண்ட்; ஸ்டேட்மென்ட் தவிர காண்ட்; ஸ்டேட்மென்ட் போது; ஸ்டேட்மென்ட்; ஸ்டேட்மென்ட் வரை அடுத்த ஃப்லோ கண்ட்ரோல் முக்கிய வார்த்தைகள் (சி இன் தொடர்ச்சியுடன் தொடர்புடையது), கடைசி (சி இன் இடைவெளியுடன் தொடர்புடையது), ரிட்டர்ன் மற்றும் ரீடோ ஆகியவை வெளிப்பாடுகளாகும், எனவே அவை ஷார்ட் சர்க்யூட் ஆபரேட்டர்களுடன் பயன்படுத்தப்படலாம். பெர்ல் இரண்டு உள்ளார்ந்த சுழல் கட்டமைப்புகளைக் கொண்டுள்ளது, அவை ஒவ்வொன்றும் இரண்டு வடிவங்களைக் கொண்டுள்ளனஃ முடிவுகள் = கிரேப் {.} பட்டியல் முடிவுகள் = கிரேப் எக்ஸ்பிரர், பட்டியல் முடிவுகள் = வரைபடம் {.} பட்டியல் முடிவுகள் = வரைபட எக்ஸ்பிரர், பட்டியல் கிரேப் பட்டியலின் அனைத்து கூறுகளையும் வழங்குகிறது, இதற்காக கட்டுப்படுத்தப்பட்ட தொகுதி அல்லது வெளிப்பாடு உண்மை என்று மதிப்பிடுகிறது. வரைபடம் பட்டியலின் ஒவ்வொரு உறுப்புக்கும் கட்டுப்படுத்தப்பட்ட தொகுதி அல்லது வெளிப்பாட்டை மதிப்பீடு செய்து அதன் விளைவாக வரும் மதிப்புகளின் பட்டியலைத் தருகிறது. இந்த கட்டமைப்புகள் ஒரு எளிய செயல்பாட்டு நிரலாக்க பாணியை செயல்படுத்துகின்றன. 5.10.0 வெளியீடு வரை, பெர்ல் 5 இல் சுவிட்ச் அறிக்கை எதுவும் இல்லை. 5.10.0 முதல், கொடுக்கப்பட்ட/எப்போது கிடைக்கும் என்று அழைக்கப்படும் பல வழி கிளை அறிக்கை, பின்வரும் வடிவத்தை எடுக்கிறதுஃ கொடுக்கப்பட்ட புதிய 5.10 செயல்பாடுகளை இறக்குமதி செய்ய v5.10 ஐப் பயன்படுத்தவும்; #இருக்க வேண்டும் (எக்ஸ்பிஆர்) {போது (காண்ட்) {.} இயல்புநிலை {.}} சொல்லியல் ரீதியாக, இந்த அமைப்பு மற்ற மொழிகளில் காணப்படும் அறிக்கைகளை மாற்றுவதைப் போலவே செயல்படுகிறது, ஆனால் சில முக்கியமான வேறுபாடுகளுடன். மிகப்பெரியது என்னவென்றால், சுவிட்ச்/கேஸ் கட்டமைப்புகளைப் போலல்லாமல், கொடுக்கப்பட்ட/அறிக்கைகள் முதல் வெற்றிகரமான கிளைக்குப் பிறகு செயல்பாட்டை உடைக்கும் போது, வெளிப்படையாக வரையறுக்கப்பட்ட இடைவெளி கட்டளைகளுக்காக காத்திருப்பதை விட. மாறாக, சுவிட்ச் நடத்தையைப் பின்பற்றுவதற்கு வெளிப்படையான தொடர்ச்சிகள் தேவை. பெர்ல் 5.10 ஐப் பயன்படுத்தாதவர்களுக்கு, பெர்ல் ஆவணங்கள் மற்ற கட்டுப்பாட்டு கட்டமைப்புகளைப் பயன்படுத்துவதன் மூலம் அதே விளைவை அடைய அரை டஜன் வழிகளை விவரிக்கின்றன. ஒரு சுவிட்ச் தொகுதியும் உள்ளது, இது சகோதரி மொழி ராகுவின் மாதிரியில் செயல்பாட்டை வழங்குகிறது. இது ஒரு மூல வடிப்பானைப் பயன்படுத்தி செயல்படுத்தப்படுகிறது, எனவே அதன் பயன்பாடு அதிகாரப்பூர்வமற்ற வகையில் ஊக்கமளிக்கப்படுகிறது. பெர்ல் ஒரு கோட்டோ லேபிள் அறிக்கையை உள்ளடக்கியது, ஆனால் அது அரிதாகவே பயன்படுத்தப்படுகிறது. ஒரு கோட்டோ மற்ற மொழிகளில் அழைக்கப்படும் சூழ்நிலைகள் பெர்லில் அடிக்கடி ஏற்படாது, ஏனெனில் அதன் ஓட்டம் கட்டுப்பாட்டு விருப்பங்களின் அகலம். ஒரு கோட்டோ & துணை அறிக்கையும் உள்ளது, இது ஒரு வால் அழைப்பை செய்கிறது. இது தற்போதைய சப்ரூட்டினை நிறுத்துகிறது மற்றும் உடனடியாக குறிப்பிட்ட சப்-ஐ அழைக்கிறது. பெர்லை விட ஒரு அழைப்பாளர் மிகவும் திறமையான அடுக்கு நிர்வாகத்தை செய்யக்கூடிய சூழ்நிலைகளில் இது பயன்படுத்தப்படுகிறது (பொதுவாக தற்போதைய அடுக்கில் எந்த மாற்றமும் தேவையில்லை என்பதால்), மற்றும் ஆழமான மறுநிகழ்வில், வால் அழைப்பு செயல்திறனில் கணிசமான நேர்மறையான தாக்கத்தை ஏற்படுத்தும், ஏனெனில் இது திரும்பும்போது நோக்கம்/அடுக்கு நிர்வாகத்தின் மேல்நிலையைத் தவிர்க்கிறது. சப்ரூட்டின்கள் சப்ரூட்டின்கள் துணை முக்கிய வார்த்தையுடன் வரையறுக்கப்படுகின்றன, மேலும் அவை வெறுமனே பெயரிடுவதன் மூலம் அழைக்கப்படுகின்றன. கேள்விக்குரிய சப்ரூட்டின் இன்னும் அறிவிக்கப்படவில்லை என்றால், அழைப்புக்கு செயல்பாட்டு பெயருக்குப் பிறகு அடைப்புக்குறிகளோ அல்லது அதற்கு முன் ஒரு ஆம்பர்சாண்ட் (&) தேவைப்படுகிறது. ஆனால் அடைப்புக்குறிகளைப் பயன்படுத்துவது மற்றும் இல்லாமல் பயன்படுத்துவது தற்போதைய சப்ரூட்டினின் வாதங்களை அழைக்கப்படும் ஒன்றுக்கு மறைமுகமாக அனுப்பும், மேலும் அடைப்புக்குறிகளைப் பயன்படுத்துவது முன்மாதிரிகளைத் தவிர்க்கும். ஃபூ (); & ஃபூ; #(இதுவும் வேலை செய்கிறது, ஆனால் சப்ரூட்டினுக்கு அனுப்பப்பட்ட வாதங்கள் தொடர்பான பிற விளைவுகளைக் கொண்டுள்ளது) #ஒரு சப்ரூட்டின் சப் ஃபூ {.} ஃபூவை வரையறுத்தல்; #இங்கே அடைப்புக்குறிகள் தேவையில்லை சப்ரூட்டின் பெயருக்குப் பிறகு வாதங்களின் பட்டியல் வழங்கப்படலாம். வாதங்கள் அளவீடுகள், பட்டியல்கள் அல்லது ஹாஷ்களாக இருக்கலாம். ஃபூ $x, @y,% z; ஒரு சப்ரூட்டினின் அளவுருக்கள் எண் அல்லது வகை என அறிவிக்கப்பட வேண்டியதில்லை; உண்மையில், அவை அழைப்புக்கு அழைப்பு மாறுபடலாம். அளவுருக்களின் எந்தவொரு சரிபார்ப்பும் சப்ரூட்டினுக்குள் வெளிப்படையாக செய்யப்பட வேண்டும். வரிசைகள் அவற்றின் கூறுகளுக்கு விரிவுபடுத்தப்படுகின்றன; ஹாஷ்கள் முக்கிய/மதிப்பு ஜோடிகளின் பட்டியலுக்கு விரிவுபடுத்தப்படுகின்றன; மேலும் முழு லாட்டும் அளவீடுகளின் ஒரு தட்டையான பட்டியலாக சப்ரூட்டினுக்குள் அனுப்பப்படுகிறது. எந்த வாதங்கள் நிறைவேற்றப்பட்டாலும் அவை சிறப்பு வரிசை @_ இல் உள்ள சப்ரூட்டினுக்குக் கிடைக்கின்றன. @_ இன் கூறுகள் உண்மையான வாதங்களைப் பற்றிய குறிப்புகள்; @_ இன் ஒரு உறுப்பை மாற்றுவது தொடர்புடைய வாதத்தை மாற்றுகிறது. @_ இன் கூறுகளை வழக்கமான வழியில் சந்தா செலுத்துவதன் மூலம் அணுகலாம். இருப்பினும், இதன் விளைவாக வரும் குறியீட்டைப் படிப்பது கடினமாக இருக்கலாம், மேலும் அளவுருக்கள் பாஸ்-பை-ரெஃபரன்ஸ் சொற்பொருள்களைக் கொண்டுள்ளன, இது விரும்பத்தகாததாக இருக்கலாம். பெயரிடப்பட்ட மாறிகளின் பட்டியலுக்கு @_ ஐ ஒதுக்குவது ஒரு பொதுவான முட்டாள்தனமாகும். எனது ($x, $y, $z) = @_; இது நினைவாற்றல் அளவுரு பெயர்களை வழங்குகிறது மற்றும் பாஸ்-பை-வேல்யூ சொற்பொருள்களை செயல்படுத்துகிறது. எனது முக்கிய சொல் பின்வரும் மாறிகள் அடங்கிய தொகுதிக்கு லெக்சிகலாக அளவிடப்படுகின்றன என்பதைக் குறிக்கிறது. மற்றொரு முட்டாள்தனம் @_ இன் அளவுருக்களை மாற்றுவதாகும். சப்ரூட்டின் ஒரே ஒரு வாதத்தை மட்டுமே எடுக்கும்போது அல்லது பொருள் சார்ந்த தொகுதிகளில் $சுய வாதத்தை கையாளும்போது இது குறிப்பாக பொதுவானது. எனது $x = ஷிப்ட்; சப்ரூட்டின்கள் பெயரிடப்பட்ட வாதங்களை உருவகப்படுத்த ஒரு ஹாஷுக்கு @_ ஐ ஒதுக்கலாம்; இது மூன்று அளவுருக்களுக்கு மேல் இருக்கக்கூடிய சப்ரூட்டின்களுக்கான பெர்ல் சிறந்த நடைமுறைகளில் பரிந்துரைக்கப்படுகிறது. துணைச் செயல்பாடு1 {எனது% args = @_; அச்சு 'x' வாதம் '$args {x}' \n ';} செயல்பாடு1 (x => 23); சப்ரூட்டின்கள் மதிப்புகளைத் திருப்பித் தரலாம். 42, $x, @y,% z ஐ திருப்பி அனுப்பவும்; சப்ரூட்டின் ஒரு ரிட்டர்ன் ஸ்டேட்மென்ட் வழியாக வெளியேறவில்லை என்றால், அது சப்ரூட்டின் பாடிக்குள் மதிப்பிடப்பட்ட கடைசி வெளிப்பாட்டை வழங்குகிறது. திரும்பும் மதிப்பில் உள்ள வரிசைகள் மற்றும் ஹாஷ்கள் வாதங்களுக்கானதைப் போலவே அளவீடுகளின் பட்டியல்களுக்கும் விரிவுபடுத்தப்படுகின்றன. திரும்பிய வெளிப்பாடு சப்ரூட்டினின் அழைப்பு சூழலில் மதிப்பீடு செய்யப்படுகிறது; இது கவனக்குறைவாக இருப்பவர்களை ஆச்சரியப்படுத்தலாம். துணைப் பட்டியல் {(4,5,6)} துணை வரிசை {@x = (4,5,6); @x} $x = பட்டியல்; #6 ஐத் தருகிறது-பட்டியலின் கடைசி உறுப்பு $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'. #ஐத் தொடர்ந்து எந்த எழுத்தும் சி #ஐத் தொடர்ந்து 'சி' எழுத்து/எக்ஸ்; ஒரு வழக்கமான வெளிப்பாட்டின் பகுதிகளைப் பிடிப்பது அடைப்புக்குறிக்குள் இணைக்கப்படலாம்; பொருந்தக்கூடிய சரத்தின் தொடர்புடைய பகுதிகள் கைப்பற்றப்படுகின்றன. கைப்பற்றப்பட்ட சரங்கள் தொடர்ச்சியான உள்ளமைக்கப்பட்ட மாறிகள் $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 பல நவீன பெர்ல் பயன்பாடுகள் மூஸ் பொருள் அமைப்பைப் பயன்படுத்துகின்றன. மூஸ் வகுப்பின் மேல் கட்டப்பட்டுள்ளதுஃஃ எம்ஓபி, ஒரு மெட்டா-பொருள் நெறிமுறை, அனைத்து மூஸ்-பயன்படுத்தும் வகுப்புகளுக்கும் முழுமையான சுயபரிசோதனையை வழங்குகிறது. எனவே வகுப்புகளின் பண்புக்கூறுகள், பெற்றோர்கள், குழந்தைகள், முறைகள் போன்றவற்றைப் பற்றி நீங்கள் கேட்கலாம். ஒரு எளிய ஏபிஐ ஐப் பயன்படுத்துதல். மூஸ் வகுப்புகள்ஃ ஒரு வகுப்பில் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட பண்புக்கூறுகள் உள்ளன. ஒரு வகுப்பில் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட முறைகள் உள்ளன. ஒரு வகுப்பில் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட சூப்பர் கிளாஸ்கள் (அதாவது பெற்றோர் வகுப்புகள்) உள்ளன. ஒரு வர்க்கம் அதன் சூப்பர் கிளாஸிலிருந்து (எஸ்) பெறப்படுகிறது. ஒரு வகுப்பு பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட பாத்திரங்களைச் செய்கிறது, இது துணை வகைப்படுத்தல் இல்லாமல் வகுப்புகளுக்கு முன் வரையறுக்கப்பட்ட செயல்பாட்டைச் சேர்க்கும் திறனைச் சேர்க்கிறது. ஒரு வகுப்பில் ஒரு கட்டமைப்பாளர் மற்றும் ஒரு அழிப்பவர் உள்ளனர். ஒரு வகுப்பில் ஒரு மெட்டா கிளாஸ் உள்ளது. ஒரு வகுப்பில் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட முறை மாற்றிகள் உள்ளன. இந்த மாற்றிகள் அதன் சொந்த முறைகள், அதன் மூதாதையர்களிடமிருந்து பெறப்பட்ட முறைகள் அல்லது பாத்திரங்களால் வழங்கப்படும் முறைகளுக்கு பொருந்தும். மூஸ் பாத்திரங்கள்ஃ ஒரு பாத்திரம் என்பது ஒரு வர்க்கம் செய்யும் ஒன்று, இது மற்ற பொருள் சார்ந்த நிரலாக்க மொழிகளில் மிக்ஸின்கள் அல்லது இடைமுகங்களைப் போன்றது. மிக்ஸின்கள் மற்றும் இடைமுகங்களைப் போலல்லாமல், பாத்திரங்கள் தனிப்பட்ட பொருள் நிகழ்வுகளுக்கு பயன்படுத்தப்படலாம். ஒரு பாத்திரத்திற்கு பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட பண்புக்கூறுகள் உள்ளன. ஒரு பாத்திரத்திற்கு பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட முறைகள் உள்ளன. ஒரு பாத்திரத்தில் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட முறை மாற்றிகள் உள்ளன. ஒரு பாத்திரத்திற்கு பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட தேவையான முறைகள் உள்ளன. எடுத்துக்காட்டுகள் மூஸ் எக்ஸ் ஐப் பயன்படுத்தி எழுதப்பட்ட ஒரு வகுப்பின் எடுத்துக்காட்டுஃ மூஸ் எக்ஸ் ஐப் பயன்படுத்தவும்ஃ மூஸ் எக்ஸ் ஐப் பயன்படுத்தவும்ஃ அறிவிக்கவும்; வகுப்பு பாயிண்ட் 3 டி புள்ளியை நீட்டிக்கிறது {'z' => உள்ளது (ஐசா => 'எண்', => 'rw'); தெளிவான பிறகு {$self-> z (0);} முறை செட் _ டு (எண் $x, எண் $y, எண் $z) {$self-> x ($x); $self-> y ($y); $self-> z ($z);} இது மூஸ் எடுத்துக்காட்டுகளில் விளக்கப்பட்ட பாயிண்ட் என்ற மற்றொரு வகுப்பை விரிவுபடுத்தும் பாயிண்ட் 3 டி என்ற வகுப்பு. இது அதன் அடிப்படை வகுப்பில் ஒரு புதிய பண்புக்கூறு z ஐச் சேர்க்கிறது, அமைத்த முறையை மறுவரையறை செய்கிறது மற்றும் முறையை தெளிவாக விரிவுபடுத்துகிறது. குறிப்புகள் வெளிப்புற இணைப்புகள் பெர்ல் பயிற்சிகள் சுமார் 2 மணி நேரம் 30 நிமிடங்களில் பெர்ல் கற்றுக்கொள்ளுங்கள் பெர்ல் அறிவு மற்றும் குறியீட்டு உதவிக்குறிப்புகளைப் பகிர்ந்து கொள்வதில் ஒரு சமூகம் உறுதிபூண்டுள்ளது. பெர்ல் குறியீடு பெர்ல் உதாரணம் கொண்ட கட்டுரைகள்