mirror of
https://github.com/Hizenberg469/Makefile-tutorial.git
synced 2026-04-19 22:02:24 +03:00
perl scripting
This commit is contained in:
100
perl/wiki
Normal file
100
perl/wiki
Normal file
@@ -0,0 +1,100 @@
|
||||
-> Perl is weakly typed language.
|
||||
|
||||
$a=10;
|
||||
$b="a";
|
||||
$c=$a.$b;
|
||||
print $c;
|
||||
|
||||
output:
|
||||
10a
|
||||
|
||||
|
||||
-> It follows both procedural and object oriented paradigm.
|
||||
|
||||
Ex: Csc01BuildUnit.pm -> Base class = Build.pm
|
||||
^ ^
|
||||
| |
|
||||
Derived class Base class
|
||||
|
||||
With .pm extension is for perl module
|
||||
|
||||
-> Perl is interpreted language, but as compare to interpreted language like
|
||||
bash, etc, perl can be compiled to bytecode.
|
||||
|
||||
-> Perl can support .pl or .PL extension, but not restricted to these only
|
||||
can also use .pm extension, which used in Tejas Networks.
|
||||
|
||||
-> '#!/usr/bin/env perl':
|
||||
Will search for perl in $PATH environment variable from shell and then run from
|
||||
that
|
||||
|
||||
The path mentioned is path for binary 'env' which is used to find
|
||||
exectuable for perl
|
||||
|
||||
Use command 'which perl' to find the location of perl
|
||||
|
||||
-> '#!/usr/bin/perl':
|
||||
This will be used in direct path for perl exectuable( absence of this
|
||||
can lead to error.)
|
||||
|
||||
flags:
|
||||
|
||||
-d: debugging mode(suboption: next, run, step, print, etc).
|
||||
* h: help
|
||||
* run: start execution
|
||||
* next: next line
|
||||
* step: follow function call if there
|
||||
* print: non-nested printing
|
||||
* x: nested printing of objects, data structures, etc
|
||||
* b: set break points
|
||||
* c: continue
|
||||
|
||||
-I Directory: (include directory): Specifies @INC
|
||||
It add specific directories to @INC array
|
||||
|
||||
-w: Shows important warnings
|
||||
-W: Shows all warnings
|
||||
-X: Disable all warnings
|
||||
|
||||
@INC: It is a array of include directory.
|
||||
While running the scripts, we might see this in error logs.
|
||||
This means that some include directories are missing.
|
||||
|
||||
-> -e "program": Runs perl script sent in as a program(Interactive mode
|
||||
programming). To run a one liner perl command use -e flag
|
||||
|
||||
perl -e 'print "Hello World\n"'
|
||||
Output: Hello World
|
||||
|
||||
-> eval perl: To run multi line perl command use eval perl.
|
||||
|
||||
For example:
|
||||
eval perl
|
||||
@a = ('csc01', 'csc02', 'cef8');
|
||||
print @a, "\n";
|
||||
print "@a\n";
|
||||
|
||||
CTRL+D
|
||||
|
||||
-> -t && -T && -U: For security & taint check/warnings.
|
||||
|
||||
* -T: check for unsecure operation tainting in given perl script
|
||||
and treat them as fatal errors. Stop the scripts
|
||||
* -t: small brother of -T, run the scripts with warnings
|
||||
* -U: Allow unsecure and run scripts without warnings and errors.
|
||||
|
||||
-> Comments:
|
||||
|
||||
Begins with '#' symbol.
|
||||
'#' is used for single line comment.
|
||||
|
||||
Multi-line comment is achieved using:
|
||||
=begin
|
||||
.....
|
||||
comments
|
||||
.....
|
||||
=cut
|
||||
|
||||
exception:
|
||||
'#!/usr/bin/perl' Shabang is not comment. It just tell
|
||||
the bash that its a perl script.
|
||||
Reference in New Issue
Block a user