Greetings. If any one needs meeting summary, below is.
Thanks *@saifi* for driving this.
@all Pardon me if anything is missing/change needed. Please add as reply
*Topic heading *Own the Shell with PERL
*Session highlights*
1. Went through journey from Shell programming to Perl programming
2. Had brief discussion around shell
3. Learned on Perl language powers in detail
4. Learned how to leverage shell concepts in Perl
5. Observed that the programming paradigm is simply a tool for solving
engineering problems. So, engineering problem is the key focus point, not
the programming paradigm.
*Summary*
*Shell*
- Learned fundamental purpose of shell
- Pattern matching
- Scoping
- Evolution of Shell was explained
- Learned extended usage of ~ (tilda)
- About bashrc purpose and hands-on for writing a script for checking
its presence
- Cat /etc/shells gives list of shell available in the platform
- Useful ENV touched
- PATH
- LD_LIBRARY_PATH
- Useful command touched
- /usr/bin/env
- Difference between [] and [[ ]]
- Both are functionally same but the interoperability as [[ ]] is
posix compliant
*Perl*
- Journey from shell to perl
- Perl allows to select specific version for the program at hand.
- This makes perl backward compatible and so promotes *portability.*
- Perl is highly portable compared to any other programming language
- Perl has a core list of modules which is a must for any perl module
(since it is needed by perl interpreter). This can be listed via *corelist
*command
- Basic commands touched
- *Corelist* command pupose -> to list all available version of perl
core module
- *Perl -v*
- *perl -V*
- Compile-time options
- *PERLIO_LAYERS* => Create multiple layers of IO
- *USE_REENTRANT_API* -> For multithread PERL
- Hands-on for creation of a new module at custom path
- *PERL5LIB* env variable is used for custom path
- *Package* keyword is used in the file for defining module
- Perl has a API namely *system *which is used to run shell command
as it is. It also allows to pass parameters
- Debugging
- PERL displays possible reason of errors which is helpful in
debugging
- Perl debugger is powerful *Perl -d *is used for trigger debugging
and it supports following debugging features
- Step over/through
- Run
- breakpoint
- Possible to print exception
- Perdoc is similar to manpage
- perdoc -f system
- Man page for system module
- Perl has option to use pipe(|) of shell command. *open* API can use
pipe
*Others*
- Open vs fopen
- Open is unbuffered, fopen is buffered IO
- Programming paradigm vs engineering
- Programming paradigm is a tool for solving engineering problem