<span dir="rtl">Tcl/Tk למתכנתים - המכללה האקדמית נתניה</span>

whooploafSoftware and s/w Development

Dec 13, 2013 (3 years and 9 months ago)

129 views

ahmadjbara@gmail.com

1


םיטפירקס תופש


P E R L


האצרה
1


ג דמחא
'
הראב

היב
"
בשחמה יעדמל ס

הינתנ תימדקאה הללכמה

ahmadjbara@gmail.com

2

לש תובת ישאר
Perl

P
ractical
E
xtraction and
R
eport
L
anguage






P
athologically
E
clectic
R
ubbish
L
ister


ahmadjbara@gmail.com

3

לש הירוטסיה
Perl


סקינוי


1969
.


תפש
C



1972
.


Awk



1977
.


Sh



1978
.


Perl



1987

ידי לע
Larry Wall
.


Perl
5.001



1995
.


Perl
5.6



2000
.


הנורחא הסרג
:
Perl
6
.

ahmadjbara@gmail.com

4

לש דועייה
Perl


Larry Wall on Perl:

"I realized at that point that there was a huge ecological
niche between the C

language and Unix shells
," says Wall. "C was good for manipulating complex

things
--

you can call it '
manipulexity
.' And the shells were good at
whipping

up

things
--

what I call
'whipupitude
.' But there was this big blank area where

neither C nor shell were good, and that's where I aimed Perl."



ahmadjbara@gmail.com

5

לש םינייפאמה
Perl


Original “man” page for Perl


Perl is (an)
interpreted language

optimized for
scanning arbitrary text files
,
extracting information

from those text files, and
printing

reports

based on
that information. It's also a good language for many
system management

tasks. The language is intended to be
practical

(easy to use, efficient,
complete)
rather than beautiful

(tiny, elegant, minimal). It
combines

(in the
author's opinion, anyway) some of the best
features of C, sed, awk, and sh
, so
people familiar with those languages should have little difficulty with it.
(Language historians will also note some vestiges of csh, Pascal, and even
BASIC|PLUS.) Expression syntax corresponds quite closely to C expression
syntax. If you have a problem that would ordinarily use sed or awk or sh, but it
exceeds their capabilities or must run a little faster, and you don't want to
write the silly thing in C, then perl may be for you. There are also
translators to
turn your sed and awk scripts into perl scripts.

OK, enough hype.


ahmadjbara@gmail.com

6

לש םיטלוב םינייפאמ
Perl


String Manipulation and Text Processing.


File Handling.


Regular Expressions and pattern matching.


Flexible array and hashes.


System interactions (directories, files, processes)


CGI scripts for web sites


It is object oriented and procedural language.


ahmadjbara@gmail.com

7

םינותנ יגוס
/
םינתשמ


הנתשמ

ב
-

Perl


לוכי

תויהל

:



Scalar




Array



Hash

ahmadjbara@gmail.com

8

Scalars


הנתשמ

יראלקס

גציימ

ךרע

דדוב
.



הנתשמ

יראלקס

לוכי

תויהל

:

רפסמ

םלש
,

רפסמ

ישממ

,

תזורחמ
.


ןיא

ךרוצ

ריהצהל

לע

הנתשמה
.

טושפ

םיליחתמ

דובעל

ותיא
.


םש

הנתשמ

גוסמ

ראלקס

בייח

ליחתהל

ןמיסב

$
.

(
type

identifier
)


$age =
17
;

$avg =
95.2
;

$name
1
= “Ahmad”;

ahmadjbara@gmail.com

9

Scalars

םירפסמ


םירפסמ

םיגצוימ

הפשב

הרוצב

תחא

:

ישממ

לופכ
.

(
תרירב

לדחמ
)


םיעובק

םיישממ

(
literals

,

constants
)


1
.
25

,

7
.
2
E
12



םיעובק

םימלש


12
,

0125
,
0
x
2
A


ahmadjbara@gmail.com

10

Scalars

תוזורחמ


ףצר

םיוות
.


ןיא

תובישח

ותל

NULL

ומכ

תופשב

תורחא
.


עובק

יתזורחמ

(

literals,

constants
)


single
-
quoted

string


double
-
quoted

string


back
-
quoted

string

ahmadjbara@gmail.com

11

Scalars


Double

Quoted

String


ףצר

םיוות

רשא

םיפקומ

ב
-

double

quote


backslash

escape



המישר

לש

םינמיס

םידחוימ

(
םיליחתמ

ב
-

\
)

םילבקמש

תועמשמ

תדחוימ
.

(
הלבט

ךשמהב
)
.


Variable

Interpolation


םינתשמ

םיעיפומש

ךותב

תזורחמ

ופלחוי

םיכרעב

םהלש
.

(
ךשמהב
)

ahmadjbara@gmail.com

12

Scalars


Double

Quoted

String

Character

Meaning

Character

Meaning

Character

Meaning

\
n

Newline

\
e

escape

\
l

Lowercase next letter

\
r

Return

\
0
Octal

Octal Ascii
code

\
L

lowercase letters until
\
E

\
t

Tab

\
xHex

Hex ascii
code

\
u

Uppercase next letter

\
f

Formfeed

\
cChar


\
cC

Control

Character

Ctrl+C

\
U

Uppercase letters untill
\
E

\
b

Backspace

\
\

backslash

\
E

Terminate
\
L and
\
U

\
a

Bell

\


Double quote

\
e

escape

םידחוימ םינמיס תלבט


backslash escape

ahmadjbara@gmail.com

13

Scalars


Single

Quoted

String


ףצר

םיוות

רשא

םיפקומ

ב
-

single

quote


לכ

ות

חקלנ

ומכ

אוהש
.


םירקמ

םידחוימ

:


ידכ

לולכל

single

quote


שי

םידקהל

ותוא

ב
-

\
.

‘Hell’o World’


לולכל ידכ
\

ב ותוא םידקהל שי
-

\
.

‘Hello
\
\
World’

ahmadjbara@gmail.com

14

םירפסמ לע תולועפ



תולועפ

תויטמתירא


+

,

-

,

*

,

/


קוליחה

דימת

ישממ

ללוכ

הרקמה

אבה

:

5
/
2
=
2
.
5


רוטרפוא

האלעה

הקזחב


ןומיס

:

**


המגוד

:

2
**
3


(
2

תקזחב

3
)


םא

הבושתה

הלודג

ידמ

לבקתת

האיגש

.

Fatal

error


רוטרפוא

ה
-

modulus



ןומיס

:

%


תואמגוד

:

5
%
2
=
1


,

5
.
2
%
2
.
9
=
1


ahmadjbara@gmail.com

15

םירפסמ לע תולועפ



autoincrement

and

autodecrement


$
x++

,

++
$
x

,

$
x
--

,

--
$
x

,

$
y=
$
x++

,

$
y=++
$
x


תלועפ

המשה

הריזחמ

ךרע


$
x=
2

+

(
$
y=
3
)


תולועפ

המשה

תויראניב

(
ירוציק

ךרד
)


$
x

+=

4


$
x

**=

2


$
x

=

(
$
y

+=

3
)

ahmadjbara@gmail.com

16

םירפסמ לע תולועפ



םירוטרפוא

םייסחי


>

,

<

,

>=

,

<=

,

==

,

!=


םייוטיב

םיבכרומ


!,

&&

,||

ahmadjbara@gmail.com

17

תוזורחמ לע תולועפ


רושרש

תוזורחמ


ןומיס

:

.

(
רוטרפוא

הדוקנה
)



המגוד

:

“Hello”

.





.

“World”




"
Hello

World
"
.


המגוד

:

$
str

.
=

“abc”


תולועפ

האוושה

Operator

Meaning

Operator

Meaning

eq

Equal

le

Less than or equal

ne

Not equal

ge

Greater than or equal

lt

Less than

gt

Greater than

ahmadjbara@gmail.com

18

תוזורחמ לע תולועפ



string

repetition

operator


ןומיס

:

x

(
תואה

x

)


הנבמ

:

string

x

number



ךרע

רזחומ

:

רוטרפואה
x


רצוי

תזורחמ

הבש

string

העיפומ

number

םימעפ
.


המגוד

:

“ab”

x

3




“ababab”

.


המגוד

:

5

x

3




"
555
"


המגוד
:

“ab”

x

2
.
3



"
abab
"


המגוד
:

“ab”

x

0



""

ahmadjbara@gmail.com

19

תוזורחמו םירפסמ ןיב תורמה



תזורחמ

םישמתשמש

הב

רשקהב

ירמונ

תרמומ

רפסמל

לכב

הרקמ
.



12


+

4




16



12
a”

+

4




16




12
a



+

4



16



“abc”

+

4




4


רפסמ

עיפומש

רשקהב

יתזורחמ

רמומ

תזורחמל
.


“abc”

.

8



“abc”

.


8





“abc
8



ahmadjbara@gmail.com

20

תוירלקס תויצקנופ



היצקנופה

chop



היצקנופה

תלבקמ

רטמרפכ

הנתשמ

ירלקס

תקחומו

ונממ

תא

ותה

ןורחאה
.

$
str

=

“Hello

World”
;

chop(
$
str)
;

print

$
str

;

#

prints

“Hello

Worl”


איה

הריזחמ

תא

ותה

הקחמש
.


רובע

תזורחמ

הקיר

היצקנופה

אל

השעת

רבד
.


םאה

chop)“Hello”(


יקוח

?

ahmadjbara@gmail.com

21

תוירלקס תויצקנופ



היצקנופה

chomp



היצקנופה

תלבקמ

רטמרפכ

הנתשמ

ירלקס

תקחומו

ונממ

תא

ותה

ןורחאה

יאנתב

אוהש

\
n
.

$
str

=

“Hello

World
\
n”
;

chop(
$
str)
;

print

$
str

;

#

prints

“Hello

World”


םא

ןיא

\
n


ףוסב

תזורחמה
,

היצקנופה

אל

השעת

רבד
.

ahmadjbara@gmail.com

22

לחתוא אלש הנתשמ



לכל

הנתשמ

ירלקס

שי

ךרע

םג

ינפל

ולוחתא

םעפב

הנושארה
.


ךרעה

הז

אוה

עובקה

undef

.


םא

םישמתשמ

וב

רשקהב

ירמונ

אוה

היהנ

0
.


םא

םישמתשמ

וב

רשקהב

יתזורחמ

אוה

היהנ

תזורחמ

הקיר
.


לע

תנמ

קודבל

םא

ךרע

םיוסמ

אוה

undef

שי

שמתשהל

היצקנופב

תינאילובה

defined
.


היצקנופ

וז

הבוט

םג

תקידבל

העגה

ל
-

EOF
.

(
ךשמהב
)

ahmadjbara@gmail.com

23

תזורחמ ךותב יראלקס הנתשמ לש היצלופרטניא



הנתשמ

ירלקס

לוכי

עיפוהל

ךותב

double

quoted

string

.


הרקמב

הז

,

ךרע

הנתשמה

ץבושמ

ךותב

תזורחמה

םוקמב

הנתשמה
.


הרקמל

הנתשמהש

אל

לחתוא

וא

אל

םייק

ףלחוי

תזורחמב

הקיר
.




ןיא

תופלחה

תוננוקמ

$x = “World”;

$y = “Hello $x”;

$z = “Hello $a”;

$x = “World”;

$y = ‘Hello $x’;

$z = “Hello $y”; # the value of z is : “Hello Hello $x”

ahmadjbara@gmail.com

24

תזורחמ ךותב יראלקס הנתשמ לש היצלופרטניא



תעינמ

הפלחהה

לש

הנתשמ

ךרעב

ולש


שומיש

ב
-

single

quote



שומיש

ב
-

\


וטיבל

תועמשמה

לש

ןמיס

ה
-

$
.

$x = “World”;

$y = “Hello ” . ‘$x’;

$z = “Hello
\
$x”;

ahmadjbara@gmail.com

25

תזורחמ ךותב יראלקס הנתשמ לש היצלופרטניא



הרקמ

יתייעב





ןורתפ

:

שומיש

ב
-

}{

וא

רוטרפואב

הדוקנה
.

$x = “Hello”;

$xy = “World”;

$z = “Hello $xy”; # z = “Hello World” ;

$x = “Hello”;

$xy = “World”;

$z = “Hello ${x}y”; # z = “Hello Helloy” ;

$z = “Hello $x” . “y” ; # z = “Hello Helloy”;

ahmadjbara@gmail.com

26

תזורחמ ךותב יראלקס הנתשמ לש היצלופרטניא



שומיש

םינמיסב

םידחוימ

יונישל

לדוג

תויתואה





$x = “
\
UHello”; # x = “HELLO”

$y = “
\
U$x”; # y = “HELLO”

$z = “
\
u
\
L$y”; # z = “Hello”

ahmadjbara@gmail.com

27

יטרדנטס טלפ טלק



תטילק

הרוש

תעצבתמ

לע

ידי

<
STDIN
>
.


ךרעה

לש

<
STDIN
>

רחאל

הטילקה

ללוכ

\
n
.


תיברמב

םירקמה

הצרנ

קוחמל

תא

\
n

ףוסמ

טלקה
.


ןכל
,

ןתינ

רזעיהל

היצקנופב

chomp
.




$a = <STDIN>;

chomp($a);

chomp($a = <STDIN>);


ahmadjbara@gmail.com

28

יטרדנטס טלפ טלק



הספדה

תעצבתמ

לע

ידי

שומיש

היצקנופב

print





תיללכ
,

שומישה

םיירגוסב

תעב

תלעפה

היצקנופ

וניא

הבוח
.

print (“Hello World
\
n”);

print “Hello World
\
n”;

ahmadjbara@gmail.com

29

יוהיז
EOF

טלקב



הציחל

לע

ףוריצה

ctrl+d


תנמסמ

העגה

ףוסל

טלק
.


הרקמב

הזכ

ה
-

<STDIN>

ריזחי

undef

.