PERL/C3/Exception-and-error-handling-in-PERL/Kannada

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 Exception and error handling in PERL (ಎಕ್ಸೆಪ್ಶನ್ ಆಂಡ್ ಎರರ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಇನ್ ಪರ್ಲ್) ಎಂಬ ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್ ಗೆ ನಿಮಗೆ ಸ್ವಾಗತ.
00:06 ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ, ನಾವು:
  • ಎರರ್ ಗಳನ್ನು ಕ್ಯಾಚ್ ಮಾಡುವುದು ಮತ್ತು
  • ಎಕ್ಸೆಪ್ಶನ್ ಗಳನ್ನು ಹ್ಯಾಂಡಲ್ ಮಾಡುವುದು (ನಿಭಾಯಿಸುವುದು) ಇವುಗಳ ಬಗ್ಗೆ ಕಲಿಯುವೆವು.
00:12 ಈ ಟ್ಯುಟೋರಿಯಲ್ ಗಾಗಿ, ನಾನು:
  • Ubuntu Linux 12.04 (ಉಬಂಟು ಲಿನಕ್ಸ್) ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ
  • Perl 5.14.2 ಮತ್ತು
  • gedit (ಜಿ-ಎಡಿಟ್) ಟೆಕ್ಸ್ಟ್-ಎಡಿಟರ್ ಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದೇನೆ.
00:23 ನೀವು, ನಿಮಗೆ ಇಷ್ಟವಾದ ಯಾವುದೇ ಟೆಕ್ಸ್ಟ್-ಎಡಿಟರ್ ಅನ್ನು ಬಳಸಬಹುದು.
00:27 ಈ ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ಅನುಸರಿಸಲು, ನೀವು ಪರ್ಲ್ (Perl) ಪ್ರೊಗ್ರಾಮಿಂಗ್ ಬಗ್ಗೆ ತಿಳಿದಿರುವುದು ಅವಶ್ಯಕ.
00:32 ಇಲ್ಲದಿದ್ದರೆ, ಸಂಬಂಧಿತ Perl ’ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್’ ಗಳನ್ನು Spoken Tutorial ವೆಬ್ಸೈಟ್ ಮೇಲೆ ನೋಡಿ.
00:39 ಎರರ್ ಕಾಣಿಸಿಕೊಂಡಾಗ, 'ಎಕ್ಸೆಪ್ಶನ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್', ಪ್ರೊಗ್ರಾಂನ ಎಕ್ಸೀಕ್ಯೂಶನ್ ಅನ್ನು ಸಹಜ ಎಕ್ಸೀಕ್ಯೂಶನ್ ನ ದಾರಿಯಿಂದ ಬದಲಿಸುತ್ತದೆ
00:47 ಮತ್ತು ಅಪ್ಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅಂತ್ಯಗೊಳಿಸದೇ ಪ್ರೊಗ್ರಾಮನ್ನು ಪುನಃ ಪಡೆದುಕೊಳ್ಳಲು ಸಹಾಯಮಾಡುತ್ತದೆ.
00:53 ನಾವು ಅನೇಕ ವಿಧಗಳಲ್ಲಿ ಎರರ್ ಅನ್ನು ಗುರುತಿಸಿ ಅದನ್ನು ಹಿಡಿಯಬಹುದು. ಪರ್ಲ್ ನಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುವ ಕೆಲವು ರೀತಿಗಳನ್ನು ನಾವು ನೋಡುವೆವು.
01:01 'warn' ಎಂಬ ಫಂಕ್ಷನ್, ಎಚ್ಚರಿಕೆಯ ಮೆಸೇಜನ್ನು ಮಾತ್ರ ಕೊಡುತ್ತದೆ. ಇದು ಯಾವುದೇ ಮುಂದಿನ ಕ್ರಮವನ್ನು ಕೈಕೊಳ್ಳುವುದಿಲ್ಲ.
01:07 'die' ಎಂಬ ಫಂಕ್ಷನ್, ಎಕ್ಸೀಕ್ಯೂಶನ್ ಅನ್ನು ತಕ್ಷಣ ಅಂತ್ಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಎರರ್ ಮೆಸೇಜನ್ನು ತೋರಿಸುತ್ತದೆ.
01:13 ಈಗಾಗಲೇ ನಾನು ಸೇವ್ ಮಾಡಿರುವ ಒಂದು ಸ್ಯಾಂಪಲ್ ಪ್ರೊಗ್ರಾಂಅನ್ನು ಬಳಸಿ, 'die' ಎಂಬ ಫಂಕ್ಷನ್ ಅನ್ನು ನಾವು ತಿಳಿದುಕೊಳ್ಳೋಣ.
01:20 ಟರ್ಮಿನಲ್ ಗೆ ಹೋಗಿ ಮತ್ತು ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ: 'gedit die dot pl ampersand' ಮತ್ತು 'Enter' ಅನ್ನು ಒತ್ತಿ.
01:29 ಇದು 'die.pl' ಎಂಬ ಫೈಲ್ ನಲ್ಲಿ ಇರುವ ಕೋಡ್ ಆಗಿದೆ. ಈಗ ನಾವು ಕೋಡ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳೋಣ.
01:35 ಇಲ್ಲಿ, ನಾವು 'divide' ಎಂಬ ಒಂದು ಫಂಕ್ಷನ್ ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇವೆ. ಇದು, 'dollar numerator' (ಡಾಲರ್ ನ್ಯೂಮರೇಟರ್) ಹಾಗೂ 'dollar denominator' (ಡಾಲರ್ ಡಿನಾಮಿನೇಟರ್) ಎಂಬ ಎರಡು ಇನ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
01:46 'ಆಟ್ ದ ರೇಟ್ ಅಂಡರ್ಸ್ಕೋರ್' (@_), ಒಂದು ಸ್ಪೆಶಲ್ ವೇರಿಯೇಬಲ್ ಆಗಿದೆ. ಇದನ್ನು ಫಂಕ್ಷನ್ ಗೆ ಪ್ಯಾರಾಮೀಟರ್ ಲಿಸ್ಟ್ ಅನ್ನು ಪಾಸ್ ಮಾಡಲು ಬಳಸಲಾಗುತ್ತದೆ.
01:53 ಒಂದುವೇಳೆ 'denominator' ಸೊನ್ನೆಯಾಗಿದ್ದರೆ, 'die' ಫಂಕ್ಷನ್, ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ.
01:57 ಅದು, ಯೂಸರ್ ನಿಗೆ ಓದಲು ಎರರ್ ಮೆಸೇಜನ್ನು ಸಹ ತೋರಿಸುವುದು. ಇಲ್ಲದಿದ್ದರೆ, ಅದು ಔಟ್ಪುಟ್ ಅನ್ನು ಪ್ರಿಂಟ್ ಮಾಡುತ್ತದೆ.
02:05 ಇವುಗಳು 'ಫಂಕ್ಷನ್ ಕಾಲ್' ಸ್ಟೇಟ್ಮೆಂಟ್ ಗಳಾಗಿವೆ.
02:08 ಮೊದಲ ಎರಡು ಬಾರಿ, ಫಂಕ್ಷನ್ ಅನ್ನು ಎಕ್ಸಿಕ್ಯೂಟ್ ಮಾಡಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಎರಡನೆಯ ಪ್ಯಾರಾಮೀಟರ್ ಸೊನ್ನೆಯಾಗಿಲ್ಲ.
02:15 ಮೂರನೆಯ ಸಲ, 'denominator' ನ ವ್ಯಾಲ್ಯೂ ಸೊನ್ನೆಯಾಗಿದೆ. ಆದ್ದರಿಂದ, 'die' ಫಂಕ್ಷನ್ ಅನ್ನು ಎಕ್ಸೀಕ್ಯೂಟ್ ಮಾಡಲಾಗುತ್ತದೆ.
02:23 'die' ಫಂಕ್ಷನ್, ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡುವುದರಿಂದ ಕೊನೆಯ 'divide' ಫಂಕ್ಷನ್ ಅನ್ನು ಎಕ್ಸೀಕ್ಯೂಟ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
02:29 ಪ್ರೊಗ್ರಾಂಅನ್ನು ಸೇವ್ ಮಾಡಲು 'Ctrl + S' ಅನ್ನು ಒತ್ತಿ.
02:32 ನಾವು ಪ್ರೊಗ್ರಾಂಅನ್ನು ಎಕ್ಸೀಕ್ಯೂಟ್ ಮಾಡೋಣ.
02:35 ಟರ್ಮಿನಲ್ ಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ: 'perl die dot pl' ಮತ್ತು 'Enter' ಅನ್ನು ಒತ್ತಿ.
02:43 ಇಲ್ಲಿ ಕಾಣುವಂತೆ ಔಟ್ಪುಟ್ ಅನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ:

“Can't divide by zero!”

02:49 ಇದು, ಪ್ರೊಗ್ರಾಂನಲ್ಲಿ 'die' ಸ್ಟೇಟ್ಮೆಂಟ್ ನಲ್ಲಿ ನಾವು ಕೊಟ್ಟಿರುವ ಎರರ್ ಮೆಸೇಜ್ ಆಗಿದೆ.
02:54 ನಂತರ, 'ಎರರ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್' ನಲ್ಲಿ 'eval' ಫಂಕ್ಷನ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದೆಂದು ನಾವು ನೋಡುವೆವು.
03:00 ರನ್-ಟೈಮ್ ಎರರ್ ಅಥವಾ ಎಕ್ಸೆಪ್ಶನ್ ಗಳನ್ನು ನಿಭಾಯಿಸಲು, 'eval' ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
03:06 ಉದಾಹರಣೆಗೆ, 'out of memory, divide by zero' ಗಳಂತಹ ಬಿಲ್ಟ್-ಇನ್ ಎರರ್ ಗಳು ಅಥವಾ ಯೂಸರ್ ಡಿಫೈನ್ಡ್ ಎರರ್ ಗಳು.
03:14 ಸಾಮಾನ್ಯವಾಗಿ 'eval' ಫಂಕ್ಷನ್ ನ ಸಿಂಟ್ಯಾಕ್ಸ್, ಕೆಳಗೆ ತೋರಿಸಿದಂತೆ ಇರುತ್ತದೆ.
03:19 'ಡಾಲರ್ ಎಕ್ಸ್ಕ್ಲಾಮೇಶನ್ ($!)' ಎಂಬ ಸ್ಪೆಶಲ್ ವೇರಿಯೇಬಲ್, ಎರರ್ ಮೆಸೇಜ್ ಇದ್ದರೆ ಅದನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ.
03:25 ಇಲ್ಲದಿದ್ದರೆ, 'ಡಾಲರ್ ಎಕ್ಸ್ಕ್ಲಾಮೇಶನ್ ($!)' ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ. ಎಂದರೆ, ಇದನ್ನು 'false' ಎಂದು ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ.
03:33 ಒಂದು ಸ್ಯಾಂಪಲ್ ಪ್ರೊಗ್ರಾಂಅನ್ನು ಬಳಸಿ, ನಾವು 'eval' ಫಂಕ್ಷನ್ ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳೋಣ. ಟರ್ಮಿನಲ್ ಗೆ ಹೋಗಿ.
03:40 ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ: 'gedit eval dot pl ampersand' ಮತ್ತು 'Enter' ಅನ್ನು ಒತ್ತಿ.
03:47 'eval dot pl' ಎಂಬ ಫೈಲ್ ನಲ್ಲಿ, ಸ್ಕ್ರೀನ್ ನ ಮೇಲೆ ತೋರಿಸಿದಂತೆ ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.

ಈಗ ನಾನು ಕೋಡ್ ಅನ್ನು ವಿವರಿಸುತ್ತೇನೆ.

03:54 ಇಲ್ಲಿ, ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ 'open FILE' ಗೆ “test.dat” ಎಂಬ ಫೈಲನ್ನು ತೆರೆಯಲು ತೊಂದರೆಯಾದರೆ, ಅದು 'die' ಸ್ಟೇಟ್ಮೆಂಟ್ ಅನ್ನು ಇನ್ವೋಕ್ ಮಾಡುತ್ತದೆ.
04:05 'ಪರ್ಲ್', ಕೊನೆಯ 'eval' ಬ್ಲಾಕ್ ನಿಂದ, 'ಡಾಲರ್ ಎಕ್ಸ್ಕ್ಲಾಮೇಶನ್ ($!)' ಎಂಬ ವೇರಿಯೇಬಲ್ ಗೆ 'ಸಿಸ್ಟಂ ಎರರ್ ಮೆಸೇಜ'ನ್ನು ಕೊಡುತ್ತದೆ.
04:13 ಫೈಲನ್ನು ಸೇವ್ ಮಾಡಲು 'Ctrl + S' ಅನ್ನು ಒತ್ತಿ.
04:17 ಟರ್ಮಿನಲ್ ಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ: 'perl eval dot pl' ಮತ್ತು 'Enter' ಅನ್ನು ಒತ್ತಿ.
04:25 ಇಲ್ಲಿ ಕಾಣುತ್ತಿರುವ ಸಿಸ್ಟಂ ಎರರ್ ಮೆಸೇಜನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ.
04:30 ನಾವು ಇನ್ನೊಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ಈ ಬಾರಿ, '$@' (ಡಾಲರ್ ಆಟ್ ದ ರೇಟ್) ಅನ್ನು ಬಳಸಿ 'eval' ಫಂಕ್ಷನ್ ನಿಂದ ಹಿಂದಿರುಗಿಸಲ್ಪಟ್ಟ ಒಂದು ಎರರ್ ಮೆಸೇಜನ್ನು ನಾವು ನೋಡುವೆವು.
04:40 ನಾವು 'eval dot pl' ಎಂಬ ಫೈಲ್ ಗೆ ಬದಲಾಯಿಸೋಣ.
04:44 ಸ್ಕ್ರೀನ್ ನ ಮೇಲೆ ತೋರಿಸಿದಂತೆ ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.
04:48 ನಾವು '$total', '$count' ಗಳನ್ನು, 'average' ಎಂಬ ಫಂಕ್ಷನ್ ಗೆ ಇನ್ಪುಟ್ ಪ್ಯಾರಾಮೀಟರ್ ಗಳೆಂದು ಪಾಸ್ (ರವಾನಿಸು) ಮಾಡುತ್ತಿದ್ದೇವೆ.
04:56 ಒಂದುವೇಳೆ 'count' ಸೊನ್ನೆಯಾಗಿದ್ದರೆ, ನಾವು ಎರರ್ ಅನ್ನು ಪಡೆಯುವ ಸಾಧ್ಯತೆಯಿದೆ.
05:00 ಇಲ್ಲಿ, ಅದನ್ನು 'die' ಸ್ಟೇಟ್ಮೆಂಟ್ ನೊಂದಿಗೆ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ.
05:04 'eval' ನಿಂದ ಹಿಂದಿರುಗಿಸಲ್ಪಟ್ಟ ಎರರ್ ಮೆಸೇಜ್ ಅನ್ನು '$@' (ಡಾಲರ್ ಆಟ್ ದ ರೇಟ್) ಅನ್ನು ಬಳಸಿ ತೋರಿಸಲಾಗುತ್ತದೆ.
05:11 ಇಲ್ಲದಿದ್ದರೆ, ಇದು 'Average'ನ ವ್ಯಾಲ್ಯೂಅನ್ನು ಪ್ರಿಂಟ್ ಮಾಡುವುದು.
05:15 ಫೈಲನ್ನು ಸೇವ್ ಮಾಡಲು 'Ctrl + S' ಅನ್ನು ಒತ್ತಿ. ನಾವು ಪ್ರೊಗ್ರಾಂಅನ್ನು ಎಕ್ಸೀಕ್ಯೂಟ್ ಮಾಡೋಣ.
05:22 ಟರ್ಮಿನಲ್ ಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ: 'perl eval.pl' ಮತ್ತು 'Enter' ಅನ್ನು ಒತ್ತಿ.
05:31 ಔಟ್ಪುಟ್, ಇಲ್ಲಿ ತೋರಿಸಿದಂತೆ ಇರುತ್ತದೆ.
05:35 ಇದರೊಂದಿಗೆ ನಾವು ಈ ಟ್ಯುಟೋರಿಯಲ್ ನ ಕೊನೆಗೆ ಬಂದಿರುತ್ತೇವೆ. ಸಂಕ್ಷಿಪ್ತವಾಗಿ,
05:41 ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ, ನಾವು:
  • ಎರರ್ ಗಳನ್ನು ಕ್ಯಾಚ್ ಮಾಡುವುದು ಮತ್ತು
  • ಎಕ್ಸೆಪ್ಶನ್ ಗಳನ್ನು ಹ್ಯಾಂಡಲ್ ಮಾಡುವುದು ಹೇಗೆ ಎಂಬುದನ್ನು ಕಲಿತಿದ್ದೇವೆ.
05:47 ಈ ಅಸೈನ್ಮೆಂಟ್ ಅನ್ನು ಮಾಡಿ.

ನಿಮ್ಮ ಲಿನಕ್ಸ್ (Linux) ಮಷಿನ್ ನ ಮೇಲೆ, 5 employee name (ಎಂಪ್ಲಾಯೀ ನೇಮ್) ಗಳೊಂದಿಗೆ 'emp.txt' ಎಂಬ ಫೈಲನ್ನು ಕ್ರಿಯೇಟ್ ಮಾಡಿ.

05:57 'emp.txt' ನ ಪರ್ಮಿಷನ್ ಅನ್ನು 'READ' ಗೆ ಬದಲಾಯಿಸಿ.
06:02 ಗಮನಿಸಿ: 'change permission' ಆಯ್ಕೆಗಳಿಗಾಗಿ, ಸಂಬಂಧಿತ 'Linux' ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್ ಗಳನ್ನು, Spoken Tutorial ವೆಬ್ಸೈಟ್ ಮೇಲೆ ನೋಡಿ.
06:10 'emp.txt' ಎಂಬ ಫೈಲನ್ನು 'WRITE' ಮೋಡ್ ನಲ್ಲಿ ಓಪನ್ ಮಾಡಲು ಒಂದು ಪರ್ಲ್ (Perl) ಪ್ರೊಗ್ರಾಂಅನ್ನು ಬರೆಯಿರಿ ಮತ್ತು ಅದರಲ್ಲಿ ಕೆಲವು ಎಂಪ್ಲಾಯೀ ನೇಮ್ ಗಳನ್ನು (employee names) ಸೇರಿಸಿ.
06:19 ಒಂದುವೇಳೆ 'open/write' ಆಪರೇಶನ್ ವಿಫಲವಾದರೆ, “eval” ಅನ್ನು ಬಳಸಿ ಸೂಕ್ತವಾದ ಎರರ್ ಮೆಸೇಜನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಿ.
06:26 ಈ ಕೆಳಗಿನ ಲಿಂಕ್ ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ವೀಡಿಯೋ, “ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್” ಪ್ರಕಲ್ಪದ ಸಾರಾಂಶವಾಗಿದೆ. ದಯವಿಟ್ಟು ಇದನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ವೀಕ್ಷಿಸಿ.
06:33 “ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್” ಪ್ರಕಲ್ಪದ ತಂಡವು:
  • “ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್” ಗಳನ್ನು ಬಳಸಿ ಕಾರ್ಯಶಾಲೆಗಳನ್ನು ನಡೆಸುತ್ತದೆ ಮತ್ತು
  • ಆನ್-ಲೈನ್ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಉತ್ತೀರ್ಣರಾದವರಿಗೆ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಕೊಡುತ್ತದೆ.
06:42 ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ ದಯವಿಟ್ಟು ಇಲ್ಲಿಗೆ ಬರೆಯಿರಿ.
06:46 ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್ ಪ್ರಕಲ್ಪವು NMEICT, MHRD ಮೂಲಕ ರಾಷ್ಟ್ರೀಯ ಸಾಕ್ಷರತಾ ಮಿಷನ್, ಭಾರತ ಸರ್ಕಾರದ ಆಧಾರವನ್ನು ಪಡೆದಿದೆ.
06:53 ಈ ಮಿಷನ್ ನ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯು ಈ ಕೆಳಗಿನ ಲಿಂಕ್ ನಲ್ಲಿ ಲಭ್ಯವಿರುತ್ತದೆ.
06:58 IIT Bombay ಯಿಂದ, ಸ್ಕ್ರಿಪ್ಟ್ ನ ಅನುವಾದಕಿ ಸಂಧ್ಯಾ ಪುಣೇಕರ್ ಹಾಗೂ ಪ್ರವಾಚಕ ನವೀನ್ ಭಟ್, ಉಪ್ಪಿನಪಟ್ಟಣ.

ವಂದನೆಗಳು.

Contributors and Content Editors

Sandhya.np14