Perl language structure
ಪರ್ಲ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ರಚನೆಯು ಭಾಷೆಯ ವಾಕ್ಯರಚನೆಯ ನಿಯಮಗಳು ಮತ್ತು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಆಯೋಜಿಸುವ ಸಾಮಾನ್ಯ ವಿಧಾನಗಳೆರಡನ್ನೂ ಒಳಗೊಂಡಿದೆ. ಪರ್ಲ್ನ ವಿನ್ಯಾಸ ತತ್ವಶಾಸ್ತ್ರವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಉಲ್ಲೇಖಿಸಲಾದ ಧ್ಯೇಯವಾಕ್ಯದಲ್ಲಿ "ಇದನ್ನು ಮಾಡಲು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಮಾರ್ಗಗಳಿವೆ" ಎಂದು ವ್ಯಕ್ತಪಡಿಸಲಾಗಿದೆ. ಬಹು-ಮಾದರಿ, ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಟೈಪ್ ಮಾಡಲಾದ ಭಾಷೆಯಾಗಿ, ಪರ್ಲ್ ಪ್ರೋಗ್ರಾಂ ವಿನ್ಯಾಸದಲ್ಲಿ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ನಮ್ಯತೆಯನ್ನು ನೀಡುತ್ತದೆ. ಪರ್ಲ್ ಮಾಡ್ಯುಲರೈಸೇಶನ್ ಅನ್ನು ಸಹ ಪ್ರೋತ್ಸಾಹಿಸುತ್ತದೆ; ಇದು ಅದರ ಯುನಿಕ್ಸ್ ಮೂಲಗಳ ಘಟಕ-ಆಧಾರಿತ ವಿನ್ಯಾಸ ರಚನೆಗೆ ಕಾರಣವಾಗಿದೆ ಮತ್ತು 100,000 ಕ್ಕೂ ಹೆಚ್ಚು ಮಾಡ್ಯೂಲ್ಗಳ ಸಮುದಾಯ-ನಿರ್ವಹಣಾ ಭಂಡಾರವಾದ ಸಿಪಿಎಎನ್ ಆರ್ಕೈವ್ನ ಗಾತ್ರಕ್ಕೆ ಕಾರಣವಾಗಿದೆ. ಪರ್ಲ್ನಲ್ಲಿ, ಕನಿಷ್ಠ ಹಲೋ ವರ್ಲ್ಡ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಬರೆಯಬಹುದುಃ "ಹಲೋ, ವರ್ಲ್ಡ್! \n" ಮುದ್ರಿಸಿ ಇದು ಹಲೋ, ವರ್ಲ್ಡ್! ಎಂಬ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಮುದ್ರಿಸುತ್ತದೆ. ಮತ್ತು ಒಂದು ಹೊಸ ಸಾಲು, ಒಂದು n ಅಕ್ಷರದಿಂದ ಸಾಂಕೇತಿಕವಾಗಿ ವ್ಯಕ್ತಪಡಿಸಲ್ಪಡುತ್ತದೆ, ಅದರ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹಿಂದಿನ ಎಸ್ಕೇಪ್ ಅಕ್ಷರದಿಂದ (ಬ್ಯಾಕ್ಸ್ಲ್ಯಾಶ್) ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಆವೃತ್ತಿ 5.10 ರಿಂದ, ಹೊಸ 'ಸೇ' ಅಂತರ್ನಿರ್ಮಿತವು ಅದೇ ಪರಿಣಾಮವನ್ನು ಇನ್ನಷ್ಟು ಸರಳವಾಗಿ ಉಂಟುಮಾಡುತ್ತದೆಃ "ಹಲೋ, ವರ್ಲ್ಡ್!" ಇಡೀ ಪರ್ಲ್ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಪರ್ಲ್ಗೆ ಕಮಾಂಡ್-ಲೈನ್ ನಿಯತಾಂಕವಾಗಿ ಸಹ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ಆದ್ದರಿಂದ ಅದೇ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಮಾಂಡ್ ಲೈನ್ನಿಂದಲೂ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು (ಯುನಿಕ್ಸ್ಗೆ ತೋರಿಸಿರುವ ಉದಾಹರಣೆ): $perl-e 'ಮುದ್ರಣ "ಹಲೋ, ವರ್ಲ್ಡ್! \n" ಪ್ರೋಗ್ರಾಂನ ಅಂಗೀಕೃತ ರೂಪವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ವರ್ಬೋಸ್ ಆಗಿದೆಃ #!/usr/bin/perl ಮುದ್ರಣ "ಹಲೋ, ವರ್ಲ್ಡ್! \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 ಆದರೆ ನಿಜ" ಎಂಬ ಬೆಸ ಸ್ವಯಂ-ವಿವರಿಸುವ ಅಕ್ಷರಶಃ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ವಾಸ್ತವವಾಗಿ ಒಂದು ಸಂಖ್ಯೆಯಾಗಿ 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 ಮತ್ತು ಹೊಸದು ಸ್ಕೇಲಾರ್ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಸಹ ಸ್ವೀಕರಿಸುತ್ತದೆ, ಇದನ್ನು ಹೆಸರಿಸಲಾದ ಫೈಲ್ ಹ್ಯಾಂಡಲ್ ಬದಲಿಗೆ ಅನಾಮಧೇಯ ಫೈಲ್ ಹ್ಯಾಂಡಲ್ಗೆ ಉಲ್ಲೇಖವಾಗಿ ಹೊಂದಿಸಲಾಗುತ್ತದೆ (ಸ್ವಯಂ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ). ಟೈಪ್ಗ್ಲೋಬ್ ಮೌಲ್ಯಗಳು ಒಂದು ಟೈಪ್ಗ್ಲೋಬ್ ಮೌಲ್ಯವು ಸಂಕೇತ ಕೋಷ್ಟಕ ನಮೂದು ಆಗಿದೆ. ಟೈಪ್ ಗ್ಲೋಬ್ಗಳ ಮುಖ್ಯ ಬಳಕೆಯೆಂದರೆ ಸಂಕೇತ ಟೇಬಲ್ ಅಲಿಯಾಸ್ಗಳನ್ನು ರಚಿಸುವುದು. ಉದಾಹರಣೆಗೆಃ * ಪಿಐ =\3.141592653; #ಸ್ಥಿರವಾದ ಸ್ಕೇಲಾರ್ ಅನ್ನು ರಚಿಸುವುದು $ಪಿಐ * ಇದು = * ಅದು; #ಎಲ್ಲಾ ಡೇಟಾ ಪ್ರಕಾರಗಳಿಗೆ ಅಲಿಯಾಸ್ಗಳನ್ನು ರಚಿಸುವುದು 'ಇದು' ಎಲ್ಲಾ ಡೇಟಾ ಪ್ರಕಾರಗಳಿಗೆ 'ಅಂದರೆ' ಅರೇ ಕಾರ್ಯಗಳು ಒಂದು ಶ್ರೇಣಿಯಲ್ಲಿನ ಅಂಶಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸ್ಕೇಲಾರ್ ಸನ್ನಿವೇಶದಲ್ಲಿ ರಚನೆಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವ ಮೂಲಕ ಅಥವಾ $#ಸಿಗಿಲ್ ಸಹಾಯದಿಂದ ನಿರ್ಧರಿಸಬಹುದು. ಎರಡನೆಯದು ರಚನೆಯಲ್ಲಿನ ಕೊನೆಯ ಅಂಶದ ಸೂಚ್ಯಂಕವನ್ನು ನೀಡುತ್ತದೆ, ಅಂಶಗಳ ಸಂಖ್ಯೆಯಲ್ಲ. ಸ್ಕೇಲಾರ್ (@array) ಮತ್ತು ($#array + 1) ಅಭಿವ್ಯಕ್ತಿಗಳು ಸಮಾನವಾಗಿವೆ. ಹ್ಯಾಶ್ ಕಾರ್ಯಗಳು ಸಂಪೂರ್ಣ ಹ್ಯಾಶ್ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಕೆಲವು ಕಾರ್ಯಗಳಿವೆ. ಕೀಲಿಗಳ ಕಾರ್ಯವು ಹ್ಯಾಶ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅದರ ಕೀಲಿಗಳ ಪಟ್ಟಿಯನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಅಂತೆಯೇ, ಮೌಲ್ಯಗಳ ಕಾರ್ಯವು ಹ್ಯಾಶ್ನ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಕೀಲಿಗಳು ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ಸ್ಥಿರವಾದ ಆದರೆ ಅನಿಯಂತ್ರಿತ ಕ್ರಮದಲ್ಲಿ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. #ಪ್ರತಿ ಕರೆಯು ಮುಂದಿನ ಕೀಲಿ/ಮೌಲ್ಯದ ಜೋಡಿಯನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. #ಎಲ್ಲಾ ಮೌಲ್ಯಗಳನ್ನು ಅಂತಿಮವಾಗಿ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಅವುಗಳ ಕ್ರಮ #ಅನ್ನು ಊಹಿಸಲಾಗುವುದಿಲ್ಲ. ಆದರೆ (($ಹೆಸರು, $ವಿಳಾಸ) = ಪ್ರತಿ% ವಿಳಾಸ ಪುಸ್ತಕ) {ಮುದ್ರಿಸು "$ಹೆಸರು $ವಿಳಾಸದಲ್ಲಿ ಉಳಿಯುತ್ತದೆ";} #ಮೇಲಿನದನ್ನು ಹೋಲುತ್ತದೆ, ಆದರೆ ವರ್ಣಮಾಲೆಯಂತೆ ವಿಂಗಡಿಸಲಾಗಿದೆ ನನ್ನ $ನೆಕ್ಸ್ಟ್ _ ನೇಮ್ (ಕೀಲಿಗಳನ್ನು ವಿಂಗಡಿಸಿ% ವಿಳಾಸ ಪುಸ್ತಕ) {ಮುದ್ರಿಸು "$ನೆಕ್ಸ್ಟ್ _ ನೇಮ್ $ವಿಳಾಸ ಪುಸ್ತಕದಲ್ಲಿ ಉಳಿಯುತ್ತದೆ {$ನೆಕ್ಸ್ಟ್ _ ನೇಮ್} \n";} ನಿಯಂತ್ರಣ ರಚನೆಗಳು ಪರ್ಲ್ ಹಲವಾರು ರೀತಿಯ ನಿಯಂತ್ರಣ ರಚನೆಗಳನ್ನು ಹೊಂದಿದೆ. ಇದು ಸಿ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಜಾವಾ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿರುವಂತೆ ಬ್ಲಾಕ್-ಆಧಾರಿತ ನಿಯಂತ್ರಣ ರಚನೆಗಳನ್ನು ಹೊಂದಿದೆ. ಷರತ್ತುಗಳು ಆವರಣಗಳಿಂದ ಸುತ್ತುವರೆದಿವೆ, ಮತ್ತು ನಿಯಂತ್ರಿತ ಬ್ಲಾಕ್ಗಳು ಕಟ್ಟುಪಟ್ಟಿಗಳಿಂದ ಸುತ್ತುವರೆದಿವೆಃ ಲೇಬಲ್ ಮಾಡುವಾಗ (ಕಾಂಡ್) {.} ಲೇಬಲ್ ಆದರೆ (ಕಾಂಡ್) {.} ಲೇಬಲ್ ಮುಂದುವರಿಸಿ (init-expr; ಕಾಂಡ್-ಎಕ್ಸ್ಪರ್; ಇಂಕ್ರ್-ಎಕ್ಸ್ಪರ್) {.} ಲೇಬಲ್ ಫೋರ್ಚ್ ವರ್ (ಲಿಸ್ಟ್) {.} ಲೇಬಲ್ ಫೋರ್ಚ್ ವರ್ (ಲಿಸ್ಟ್) {.} ಮುಂದುವರಿದರೆ (ಕಾಂಡ್) {.} ಇದ್ದರೆ (ಕಾಂಡ್) {.} ಇಲ್ಲದಿದ್ದರೆ (ಕಾಂಡ್) {.} ಎಲ್ಸಿಫ್ (ಕಾಂಡ್) {.} ಇಲ್ಲದಿದ್ದರೆ {.} ಒಂದೇ ಹೇಳಿಕೆಯನ್ನು ಮಾತ್ರ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತಿರುವಾಗ, ಹೇಳಿಕೆಯ ಮಾರ್ಪಾಡುಗಳು ಹೆಚ್ಚು ನಿಖರವಾದ ವಾಕ್ಯರಚನೆಯನ್ನು ಒದಗಿಸುತ್ತವೆಃ ಕಾಂಡ್ ಆಗಿದ್ದರೆ ಹೇಳಿಕೆ; ಕಾಂಡ್ ಹೊರತು ಹೇಳಿಕೆ; ಕಾಂಡ್ ಆಗಿದ್ದರೆ ಹೇಳಿಕೆ; ಅಲ್ಲಿಯವರೆಗೆ ಹೇಳಿಕೆ; ಮುಂದಿನ ಹರಿವಿನ ನಿಯಂತ್ರಣ ಕೀವರ್ಡ್ಗಳು (ಸಿ 'ಸ್ ಕಂಟಿನ್ಯೂಗೆ ಅನುಗುಣವಾದವು), ಕೊನೆಯ (ಸಿ' ಸ್ ಬ್ರೇಕ್ಗೆ ಅನುಗುಣವಾದವು), ರಿಟರ್ನ್ ಮತ್ತು ರೀಡೋ ಇವು ಅಭಿವ್ಯಕ್ತಿಗಳಾಗಿವೆ, ಆದ್ದರಿಂದ ಅವುಗಳನ್ನು ಶಾರ್ಟ್-ಸರ್ಕ್ಯೂಟ್ ಆಪರೇಟರ್ಗಳೊಂದಿಗೆ ಬಳಸಬಹುದು. ಪರ್ಲ್ ಎರಡು ಸೂಚ್ಯ ಲೂಪಿಂಗ್ ರಚನೆಗಳನ್ನು ಸಹ ಹೊಂದಿದೆ, ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದೂ ಎರಡು ರೂಪಗಳನ್ನು ಹೊಂದಿದೆಃ ಫಲಿತಾಂಶಗಳು = ಗ್ರೆಪ್ {.} ಪಟ್ಟಿ ಫಲಿತಾಂಶಗಳು = ಗ್ರೆಪ್ ಎಕ್ಸ್ಪ್ರ್, ಪಟ್ಟಿ ಫಲಿತಾಂಶಗಳು = ಮ್ಯಾಪ್ {.} ಪಟ್ಟಿ ಫಲಿತಾಂಶಗಳು = ಮ್ಯಾಪ್ ಎಕ್ಸ್ಪ್ರ್, ಲಿಸ್ಟ್ ಗ್ರೆಪ್ ನಿಯಂತ್ರಿತ ಬ್ಲಾಕ್ ಅಥವಾ ಅಭಿವ್ಯಕ್ತಿಯು ನಿಜವೆಂದು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವ ಪಟ್ಟಿಯ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ನಕ್ಷೆಯು ಪಟ್ಟಿಯ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೂ ನಿಯಂತ್ರಿತ ಬ್ಲಾಕ್ ಅಥವಾ ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪರಿಣಾಮವಾಗಿ ಬರುವ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಈ ರಚನೆಗಳು ಸರಳವಾದ ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಶೈಲಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತವೆ. 5.10.0 ಬಿಡುಗಡೆಯಾಗುವವರೆಗೆ, ಪರ್ಲ್ 5ರಲ್ಲಿ ಯಾವುದೇ ಸ್ವಿಚ್ ಸ್ಟೇಟ್ಮೆಂಟ್ ಇರಲಿಲ್ಲ. 5.10.0 ನಿಂದ, ನೀಡಿದ/ಯಾವಾಗ ಲಭ್ಯವಿರುತ್ತದೆ ಎಂದು ಕರೆಯಲಾಗುವ ಬಹು-ಮಾರ್ಗ ಶಾಖೆಯ ಹೇಳಿಕೆಯು ಈ ಕೆಳಗಿನ ರೂಪವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆಃ ನೀಡಲಾದ ಹೊಸ 5.10 ಕಾರ್ಯಗಳನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು v5.10 ಅನ್ನು ಬಳಸಿ; #ಅನ್ನು ಹೊಂದಿರಬೇಕು (ಎಕ್ಸ್ಪ್ರ್) {ಯಾವಾಗ (ಕಾಂಡ್) {.} ಡೀಫಾಲ್ಟ್ {.}} ವಾಕ್ಯರಚನೆಯಲ್ಲಿ, ಈ ರಚನೆಯು ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಕಂಡುಬರುವ ಹೇಳಿಕೆಗಳನ್ನು ಬದಲಾಯಿಸುವಂತೆಯೇ ವರ್ತಿಸುತ್ತದೆ, ಆದರೆ ಕೆಲವು ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸಗಳೊಂದಿಗೆ. ದೊಡ್ಡದು ಸ್ವಿಚ್/ಕೇಸ್ ರಚನೆಗಳಂತಲ್ಲದೆ, ನೀಡಿದ/ನೀಡಿದ ಹೇಳಿಕೆಗಳು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಬ್ರೇಕ್ ಕಮಾಂಡ್ಗಳಿಗಾಗಿ ಕಾಯುವ ಬದಲು ಮೊದಲ ಯಶಸ್ವಿ ಶಾಖೆಯ ನಂತರ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ. ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ, ಸ್ವಿಚ್ ನಡವಳಿಕೆಯನ್ನು ಅನುಕರಿಸಲು ಸ್ಪಷ್ಟವಾದ ಮುಂದುವರಿಕೆಗಳು ಅಗತ್ಯವಾಗಿವೆ. ಪರ್ಲ್ 5.10 ಅನ್ನು ಬಳಸದವರಿಗೆ, ಪರ್ಲ್ ದಾಖಲೆಯು ಇತರ ನಿಯಂತ್ರಣ ರಚನೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅದೇ ಪರಿಣಾಮವನ್ನು ಸಾಧಿಸಲು ಅರ್ಧ ಡಜನ್ ಮಾರ್ಗಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ. ಒಂದು ಸ್ವಿಚ್ ಮಾಡ್ಯೂಲ್ ಸಹ ಇದೆ, ಇದು ಸಹೋದರಿ ಭಾಷೆಯ ರಾಕುವಿನ ಮಾದರಿಯ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದನ್ನು ಮೂಲ ಶೋಧಕವನ್ನು ಬಳಸಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದರ ಬಳಕೆಯನ್ನು ಅನಧಿಕೃತವಾಗಿ ನಿರುತ್ಸಾಹಗೊಳಿಸಲಾಗುತ್ತದೆ. ಪರ್ಲ್ ಗೊಟೊ ಲೇಬಲ್ ಹೇಳಿಕೆಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಆದರೆ ಇದನ್ನು ವಿರಳವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಇತರ ಭಾಷೆಗಳಲ್ಲಿ ಗೋಟೋವನ್ನು ಕರೆಯುವ ಸಂದರ್ಭಗಳು ಪರ್ಲ್ನಲ್ಲಿ ಆಗಾಗ್ಗೆ ಸಂಭವಿಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅದರ ಹರಿವು ನಿಯಂತ್ರಣ ಆಯ್ಕೆಗಳ ವಿಸ್ತಾರವಾಗಿದೆ. ಗೋಟೋ & ಸಬ್ ಸ್ಟೇಟ್ಮೆಂಟ್ ಸಹ ಇದೆ, ಅದು ಟೈಲ್ ಕಾಲ್ ಅನ್ನು ಮಾಡುತ್ತದೆ. ಇದು ಪ್ರಸ್ತುತ ಸಬ್ ರುಟೀನ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ತಕ್ಷಣವೇ ನಿರ್ದಿಷ್ಟ ಸಬ್ ಅನ್ನು ಕರೆಯುತ್ತದೆ. ಕರೆ ಮಾಡುವವರು ಪರ್ಲ್ಗಿಂತ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾದ ಸ್ಟ್ಯಾಕ್ ನಿರ್ವಹಣೆಯನ್ನು ನಿರ್ವಹಿಸುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ (ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಸ್ತುತ ಸ್ಟ್ಯಾಕ್ಗೆ ಯಾವುದೇ ಬದಲಾವಣೆಯ ಅಗತ್ಯವಿಲ್ಲ), ಮತ್ತು ಆಳವಾದ ಪುನರಾವರ್ತನೆಯಲ್ಲಿ, ಟೈಲ್ ಕಾಲಿಂಗ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಗಣನೀಯ ಧನಾತ್ಮಕ ಪರಿಣಾಮವನ್ನು ಬೀರಬಹುದು, ಏಕೆಂದರೆ ಇದು ಹಿಂದಿರುಗಿದಾಗ ವ್ಯಾಪ್ತಿ/ಸ್ಟ್ಯಾಕ್ ನಿರ್ವಹಣೆಯ ಓವರ್ಹೆಡ್ ಅನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಸಬ್ರುಟೈನ್ಗಳನ್ನು ಉಪ ಕೀವರ್ಡ್ನೊಂದಿಗೆ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಸರಳವಾಗಿ ಹೆಸರಿಸುವ ಮೂಲಕ ಆಹ್ವಾನಿಸಲಾಗುತ್ತದೆ. ಪ್ರಶ್ನೆಯಲ್ಲಿರುವ ಸಬ್ರುಟೈನ್ ಅನ್ನು ಇನ್ನೂ ಘೋಷಿಸದಿದ್ದರೆ, ಆಹ್ವಾನಕ್ಕೆ ಫಂಕ್ಷನ್ ಹೆಸರಿನ ನಂತರ ಆವರಣಗಳು ಅಥವಾ ಅದರ ಮೊದಲು ಆಂಪರ್ಸ್ಯಾಂಡ್ (&) ಅಗತ್ಯವಿರುತ್ತದೆ. ಆದರೆ ಆವರಣಗಳನ್ನು ಬಳಸುವುದು ಮತ್ತು ಇಲ್ಲದೆ ಬಳಸುವುದು ಪ್ರಸ್ತುತ ಸಬ್ ರುಟೀನ್ನ ವಾದಗಳನ್ನು ಕರೆಯಲ್ಪಡುವದಕ್ಕೆ ಸೂಚ್ಯವಾಗಿ ರವಾನಿಸುತ್ತದೆ, ಮತ್ತು ಆವರಣಗಳೊಂದಿಗೆ ಬಳಸುವುದು ಮೂಲಮಾದರಿಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡುತ್ತದೆ. ಸಬ್ರುಟೈನ್ ಅನ್ನು ಕೋಡ್ ಫೂ (); & ಫೂ; #(ಇದು ಸಹ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದರೆ ಸಬ್ರುಟೈನ್ಗೆ ರವಾನಿಸಲಾದ ವಾದಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ಇತರ ಪರಿಣಾಮಗಳನ್ನು ಹೊಂದಿದೆ) #ಸಬ್ರುಟೈನ್ ಸಬ್ ಫೂ {.} ಫೂ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದು; #ಇಲ್ಲಿ ಆವರಣಗಳು ಅಗತ್ಯವಿಲ್ಲ ಸಬ್ರುಟೈನ್ ಹೆಸರಿನ ನಂತರ ವಾದಗಳ ಪಟ್ಟಿಯನ್ನು ಒದಗಿಸಬಹುದು. ವಾದಗಳು ಸ್ಕೇಲಾರ್ಗಳು, ಪಟ್ಟಿಗಳು ಅಥವಾ ಹ್ಯಾಶ್ಗಳಾಗಿರಬಹುದು. foo $x, @y,% z; ಉಪ-ರೂಟಿನ ನಿಯತಾಂಕಗಳನ್ನು ಸಂಖ್ಯೆ ಅಥವಾ ಪ್ರಕಾರಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ಘೋಷಿಸುವ ಅಗತ್ಯವಿಲ್ಲ; ವಾಸ್ತವವಾಗಿ, ಅವು ಕರೆಯಿಂದ ಕರೆಗೆ ಬದಲಾಗಬಹುದು. ನಿಯತಾಂಕಗಳ ಯಾವುದೇ ಊರ್ಜಿತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸಬ್ ರುಟೀನ್ನೊಳಗೆ ಸ್ಪಷ್ಟವಾಗಿ ನಿರ್ವಹಿಸಬೇಕು. ಸರಣಿಗಳನ್ನು ಅವುಗಳ ಅಂಶಗಳಿಗೆ ವಿಸ್ತರಿಸಲಾಗುತ್ತದೆ; ಹ್ಯಾಶ್ಗಳನ್ನು ಕೀಲಿ/ಮೌಲ್ಯ ಜೋಡಿಗಳ ಪಟ್ಟಿಗೆ ವಿಸ್ತರಿಸಲಾಗುತ್ತದೆ; ಮತ್ತು ಇಡೀ ಲಾಟ್ ಅನ್ನು ಸ್ಕೇಲಾರ್ಗಳ ಒಂದು ಸಮತಟ್ಟಾದ ಪಟ್ಟಿಯಾಗಿ ಸಬ್ರುಟೈನ್ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ. ಯಾವುದೇ ವಾದಗಳನ್ನು ಅಂಗೀಕರಿಸಲಾಗಿದೆಯಾದರೂ ವಿಶೇಷ ಶ್ರೇಣಿಯ @_ ನಲ್ಲಿ ಸಬ್ ರುಟೀನ್ಗೆ ಲಭ್ಯವಿರುತ್ತದೆ. @_ ನ ಅಂಶಗಳು ನಿಜವಾದ ವಾದಗಳ ಉಲ್ಲೇಖಗಳಾಗಿವೆ; @_ ನ ಅಂಶವನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ಅನುಗುಣವಾದ ವಾದವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. @_ ನ ಅಂಶಗಳನ್ನು ಸಾಮಾನ್ಯ ರೀತಿಯಲ್ಲಿ ಚಂದಾದಾರಿಕೆ ಮಾಡುವ ಮೂಲಕ ಪ್ರವೇಶಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಪರಿಣಾಮವಾಗಿ ಬರುವ ಕೋಡ್ ಅನ್ನು ಓದಲು ಕಷ್ಟವಾಗಬಹುದು, ಮತ್ತು ನಿಯತಾಂಕಗಳು ಪಾಸ್-ಬೈ-ರೆಫರೆನ್ಸ್ ಶಬ್ದಾರ್ಥಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ, ಇದು ಅನಪೇಕ್ಷಿತವಾಗಿರಬಹುದು. ಹೆಸರಿಸಲಾದ ಅಸ್ಥಿರಗಳ ಪಟ್ಟಿಗೆ @_ ಅನ್ನು ನಿಯೋಜಿಸುವುದು ಒಂದು ಸಾಮಾನ್ಯ ನುಡಿಗಟ್ಟು. ನನ್ನ ($x, $y, $z) = @_; ಇದು ಜ್ಞಾಪಕ ನಿಯತಾಂಕದ ಹೆಸರುಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಪಾಸ್-ಬೈ-ವ್ಯಾಲ್ಯೂ ಶಬ್ದಾರ್ಥಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ನನ್ನ ಕೀವರ್ಡ್ ಈ ಕೆಳಗಿನ ಅಸ್ಥಿರಗಳನ್ನು ಲೆಕ್ಸಿಕಲ್ ಆಗಿ ಹೊಂದಿರುವ ಬ್ಲಾಕ್ಗೆ ಸ್ಕೋಪ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. @_ ನಿಂದ ನಿಯತಾಂಕಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು ಮತ್ತೊಂದು ನುಡಿಗಟ್ಟು. ಸಬ್ ರುಟೀನ್ ಕೇವಲ ಒಂದು ವಾದವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವಾಗ ಅಥವಾ ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಮಾಡ್ಯೂಲ್ಗಳಲ್ಲಿ $ಸೆಲ್ಫ್ ವಾದವನ್ನು ನಿರ್ವಹಿಸಲು ಇದು ವಿಶೇಷವಾಗಿ ಸಾಮಾನ್ಯವಾಗಿದೆ. ನನ್ನ $x = ಶಿಫ್ಟ್; ಸಬ್ರುಟೈನ್ಗಳು ಹೆಸರಿಸಲಾದ ವಾದಗಳನ್ನು ಅನುಕರಿಸಲು ಹ್ಯಾಶ್ಗೆ @_ ಅನ್ನು ನಿಯೋಜಿಸಬಹುದು; ಮೂರಕ್ಕಿಂತ ಹೆಚ್ಚು ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿರಬಹುದಾದ ಸಬ್ರುಟೈನ್ಗಳಿಗಾಗಿ ಪರ್ಲ್ ಬೆಸ್ಟ್ ಪ್ರಾಕ್ಟೀಸಸ್ನಲ್ಲಿ ಇದನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಸಬ್ ಫಂಕ್ಷನ್1 {ನನ್ನ% ಆರ್ಗ್ಸ್ = @_; ಪ್ರಿಂಟ್ 'x' ಆರ್ಗ್ಯುಮೆಂಟ್ '$ಆರ್ಗ್ಸ್ {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/; ನಂತಹ ಅಭಿವ್ಯಕ್ತಿಯು ಸಾಮಾನ್ಯ ಅಭಿವ್ಯಕ್ತಿಯಾದ abc ಗೆ $x ಸ್ಟ್ರಿಂಗ್ ಹೊಂದಿಕೆಯಾದರೆ ಮಾತ್ರ ನಿಜವೆಂದು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ. ಮತ್ತೊಂದೆಡೆ, s// (ಬದಲಿ) ಆಪರೇಟರ್ ಹುಡುಕಾಟ ಮತ್ತು ಬದಲಿ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆಃ $x = ~ s/abc/aBc/; #b ಅನ್ನು ಹೆಚ್ಚಿಸಿ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳ ಮತ್ತೊಂದು ಬಳಕೆಯೆಂದರೆ ಸ್ಪ್ಲಿಟ್ ಫಂಕ್ಷನ್ಗಾಗಿ ಡಿಲಿಮಿಟರ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದುಃ @words = ಸ್ಪ್ಲಿಟ್/,/, $ಲೈನ್; ಸ್ಪ್ಲಿಟ್ ಫಂಕ್ಷನ್ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಸ್ಟ್ರಿಂಗ್ ಭಾಗಗಳ ಪಟ್ಟಿಯನ್ನು ರಚಿಸುತ್ತದೆ. ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಒಂದು ಸಾಲನ್ನು ಅದರದೇ ಆದ ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಿದ ಭಾಗಗಳ ಪಟ್ಟಿಯಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ, ಮತ್ತು ಈ ಪಟ್ಟಿಯನ್ನು ನಂತರ @words ವ್ಯೂಹಕ್ಕೆ ನಿಯೋಜಿಸಲಾಗಿದೆ. ವಾಕ್ಯರಚನೆಯ ಮಾರ್ಪಾಡುಗಳು ಪರ್ಲ್ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು ಮಾರ್ಪಾಡುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಇವು ಅಭಿವ್ಯಕ್ತಿಯ ಅರ್ಥವನ್ನು ಮಾರ್ಪಡಿಸುವ ಏಕ-ಅಕ್ಷರದ ಪ್ರತ್ಯಯಗಳಾಗಿವೆಃ $x = ~/abc/i; #ಕೇಸ್-ಇನ್ಸೆನ್ಸಿಟಿವ್ ಪ್ಯಾಟರ್ನ್ ಹೊಂದಾಣಿಕೆ $x = ~ s/abc/g; #ಗ್ಲೋಬಲ್ ಸರ್ಚ್ ಮತ್ತು ರಿಪ್ಲೇಸ್ ಏಕೆಂದರೆ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳ ಕಾಂಪ್ಯಾಕ್ಟ್ ವಾಕ್ಯರಚನೆಯು ಅವುಗಳನ್ನು ದಟ್ಟವಾಗಿ ಮತ್ತು ನಿಗೂಢವಾಗಿಸಬಹುದು, ಪ್ರೋಗ್ರಾಮರ್ಗಳಿಗೆ ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾದ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಬರೆಯಲು ಸಹಾಯ ಮಾಡಲು/x ಮಾರ್ಪಡಕವನ್ನು ಪರ್ಲ್ನಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ. ಇದು ಪ್ರೋಗ್ರಾಮರ್ಗಳಿಗೆ ವೈಟ್ಸ್ಪೇಸ್ ಮತ್ತು ಕಾಮೆಂಟ್ಗಳನ್ನು ಸಾಮಾನ್ಯ ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿ ಇರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆಃ $x = ~/a #ಮ್ಯಾಚ್ 'a'. #ನಂತರ ಯಾವುದೇ ಅಕ್ಷರ ಸಿ #ನಂತರ 'ಸಿ' ಅಕ್ಷರ/ಎಕ್ಸ್; ಸಾಮಾನ್ಯ ಅಭಿವ್ಯಕ್ತಿಯ ಸೆರೆಹಿಡಿಯುವ ಭಾಗಗಳನ್ನು ಆವರಣಗಳಲ್ಲಿ ಲಗತ್ತಿಸಬಹುದು; ಹೊಂದಾಣಿಕೆಯ ಸ್ಟ್ರಿಂಗ್ನ ಅನುಗುಣವಾದ ಭಾಗಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲಾಗುತ್ತದೆ. ಸೆರೆಹಿಡಿದ ತಂತಿಗಳನ್ನು ಅನುಕ್ರಮ ಅಂತರ್ನಿರ್ಮಿತ ಅಸ್ಥಿರಗಳಾದ $1, $2, $3,. ಗೆ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಸೆರೆಹಿಡಿದ ತಂತಿಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಾಣಿಕೆಯ ಮೌಲ್ಯವಾಗಿ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. $x = ~/a (. ) c/; #'a' ಮತ್ತು 'c' ನಡುವಿನ ಅಕ್ಷರವನ್ನು ಸೆರೆಹಿಡಿಯುತ್ತದೆ $1, $2, $3, ಅನ್ನು ಕೋಡ್ನಲ್ಲಿ ನಂತರ ಬಳಸಬಹುದು. ಪರ್ಲ್ ನಿಯಮಿತ ಅಭಿವ್ಯಕ್ತಿಗಳು ಅಂತರ್ನಿರ್ಮಿತ ಅಥವಾ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯಗಳನ್ನು/ಇ ಮಾರ್ಪಡಕವನ್ನು ಬಳಸುವ ಮೂಲಕ ಸೆರೆಹಿಡಿದ ಹೊಂದಾಣಿಕೆಗೆ ಅನ್ವಯಿಸಲು ಸಹ ಅನುಮತಿಸುತ್ತವೆಃ $x = "ಕಿತ್ತಳೆ"; $x = ~ s/(ಜಿಇ)/ಯುಸಿ ($1)/ಇ; #ಕಿತ್ತಳೆಗಳು $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ಡಿ ಬಿಂದುವನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ {'z' => ಅನ್ನು ಹೊಂದಿದೆ (ಇಸಾ => 'Num', => 'rw'); ಸ್ಪಷ್ಟವಾದ ನಂತರ {$self-> z (0);} ವಿಧಾನ ಸೆಟ್ _ ಟು (Num $x, Num $y, Num $z) {$self-> x ($x); $self-> y ($y); $self-> z ($z);} ಇದು ಮೂಸ್ ಉದಾಹರಣೆಗಳಲ್ಲಿ ವಿವರಿಸಲಾದ ಪಾಯಿಂಟ್ ಎಂಬ ಹೆಸರಿನ ಮತ್ತೊಂದು ವರ್ಗವನ್ನು ವಿಸ್ತರಿಸುವ ಪಾಯಿಂಟ್3ಡಿ ಎಂಬ ವರ್ಗವಾಗಿದೆ. ಇದು ತನ್ನ ಮೂಲ ವರ್ಗಕ್ಕೆ ಹೊಸ ಗುಣಲಕ್ಷಣ z ಅನ್ನು ಸೇರಿಸುತ್ತದೆ, ವಿಧಾನವನ್ನು ಸೆಟ್ _ ಟು ಎಂದು ಮರು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಮತ್ತು ವಿಧಾನವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ವಿಸ್ತರಿಸುತ್ತದೆ. ಉಲ್ಲೇಖಗಳು ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಪರ್ಲ್ ಟ್ಯುಟೋರಿಯಲ್ಗಳು ಸುಮಾರು 2 ಗಂಟೆಗಳು 30 ನಿಮಿಷಗಳಲ್ಲಿ ಪರ್ಲ್ ಅನ್ನು ಕಲಿಯಿರಿ ಪರ್ಲ್ ಜ್ಞಾನ ಮತ್ತು ಕೋಡಿಂಗ್ ಸಲಹೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬದ್ಧವಾಗಿರುವ ಸಮುದಾಯ. ಉದಾಹರಣೆಗೆ ಪರ್ಲ್ ಕೋಡ್ ಪರ್ಲ್ ಹೊಂದಿರುವ ಲೇಖನಗಳು