Site hosted by Angelfire.com: Build your free website today!

מדריך לפרל



טוב... קודם כל צריכים להוריד פרל, עורך טקסט נוח לשימוש (עם קראק),  קומפיילר(לא חובה) וקראק אליו.

את העורך טקסט אתם יכולים להתקין לבד בלי בעיה....

עכשיו תתקינו את פרל עם כל האפשרויות בV מסומנות.

את הקבצים של הקומפיילר תפתחו לתיקיה BIN שבתיקיה של פרל (אחרי ההתקנה כמובן), ואחרי שהקראק הביא לכם סריאל, לכו לדוס ותעשו:

perl2exe -register ואת המספר שהוא הביא לכם (לדוגמא: perl2exe –register hagai:1234:20055002,55540). זהו! עכשיו הכול מוכן כדי להתחיל....

 

שמירה, הפעלה וקימפול

קודם כל.. כדי שתדעו איך בכלל להשתמש במה שעשיתם, כמה הארות קצרות:

כל פקודה תסתיים בנקודה פסיק, חוץ מפקודות תנאי!

את הפקודות נא לרשום כ-caps sensitive (לשמור עם אותיות קטנות או גדולות)!

כשאתם שומרים את התוכנית שלכם היא תהיה בסיומת .pl (רק תוודאו שבחרתם all files בסוגי הקבצים).

מומלץ להפעיל את התוכניות שלכם (.pl או מקומפלות) דרך דוס כדי שהחלון לא ייסגר בסיום.

כדי להפעיל את התוכנית שלכם (בסיומת .pl) לכו לדוס ותכתבו את שם הקובץ (לדוגמא test.pl) או perl  ואז את שם הקובץ (לדוגמא perl test.pl).

כדי לקמפל (לא חובה), לכו לדוס, תעשו perl2exe ואז את שם הקובץ (לדוגמא perl2exe test.pl).

כדי להפעיל את הקבצים בסיומת .pl אתם חייבים להתקין את פרל! אם אתה לא רוצים פשוט תקמפלו כל קובץ שאתם עושים (אם אתה עושים את זה, מומלץ לשים את הקומפיילר בתיקיה של כל תוכניות הפרל שלכם).

טוב.... עכשיו נתחיל בעבודה!

 

פלט

פלט בפרל הוא מאוד פשוט:

print “some_string”;

ידפיס some_string וירד שורה.

 

print 2+2;

ידפיס 4.

 

print $var;

ידפיס את התוכן של המשתנה .var

 

משתנים

כדי ליצור משתנה לא צריך להכריז על סוג ולא כלום... פשוט עושים $ ואת שם המשתנה:

$a=4;

מכניס למשתנה a את הערך 4.

 

$a++;

מגדיל את מה שיש בa ב-1 (ייתן 5).

 

$a--;

מקטין את מה שיש בa ב-1 (יחזיר ל-4).

 

$b=”hello”;

מכניס למשתנה b את הערך hello.

 

$b=$b." world”;

הנקודה היא תו חיבור, מה שמוסיף לערך שיש בb (“hello”) את הערך “ world” (כולל הרווח כדי שהמילים לא יהיו צמודות, מה שייתן "hello world")

 

$c=$a*2;

מכפיל את הערך של a (2) ב-2 ומכניס לc (מה שייתן 4).

 

$c=$a**3;

עושה פעולת חזקה ב-3 על הערך של a (2) ומכניס לc (מה שייתן8 ).

 

$d=”a”;

$d++;

מכניס לd את הערך “a” ומגדיל אותו ב-1 (מה שייתן “b”).

 

קלט

$input=<STDIN>;

או

$input=<>;

 

מומלץ להשתמש בפקודה chop כדי להוריד את התו האחרון (שהוא האנטר, ירידת שורה):

chop $input;

 

או פשוט לעשות מההתחלה:

chop($input=<>);

 

השהייה

כדי להשהות את התוכנית לזמן מסוים משתמשים בפקודה sleep ואז, בסוגריים, את זמן ההשהיה בשניות מלאות (כלומר, מספרים שלמים)!

דוגמא:

sleep(5); #התוכנית תושהה ל-5 שניות

 

כדי להשהות את התוכנית השניות לא שלמות משתמשים ב-select, בסוגריים undef, undef, undef, (לשים לב לפסיקים) ואז את מס' השניות (אפשר גם שלמות ולא שלמות).

דוגמא:

select (undef, undef, undef, 1.5); #התוכנית תושהה ל1.5 שניות

 

משפטי תנאי

כמו בכל שפת תכנות, גם בפרל יש משפטי תנאי:

 

משפט if

if משמש לביצוע מספר פקודות אם תנאי כלשהו מתקיים או לא מתקיים ו-else משמש לביצוע פקודות אם התנאי ב-if לא מתקיים (או כן מתקיים, תלוי בתנאי).

השימוש ב-if מאוד פשוט:

if (some_condition) {some_commands}

else {some_commands}

דוגמא:

$a=1;

if ($a<=2) {print “a is either equals or smaller that 2”;}

else {print “a is bigger that 2”;}

 

קיימת גם הפקודה unless אבל היא עושה בדיוק ההפך (unless ($a==1)  זה כמו  if ($a!=1))

סימני השוואה יבואו בהמשך (אפשר להשוות בין כל דבר, כמובן)

לכל אלה שמכירים משפט switch, יש כזה משפט בפרל אבל אני עדיין לא מכיר אותו. כשאני אדע אני אכתוב פה.

 

elsif if ו-else

elsif הוא כמו else רק אם תנאי, אחריו יכולים לבוא עוד כמה elsif ובסוף יכול, אבל לא חייב, לבוא else. If לא יבוא אחריו לעולם.

דוגמא:

$a=1;

if ($a<2) {print “a is smaller that 2”;}

elsif ($a>2) {print “a is bigger that 2”;}

else {print “a must be equals to 2”;}

 

 

לולאת while

while משמש לביצוע מספר פקודות כל עוד תנאי כלשהו מתקיים או לא מתקיים.

השימוש ב- while זהה לשימוש ב-if:

while (some_condition) {some_commands}

 

לולאת for

לולאת for משמשת לעשות את אותו הדבר כמה פעמים ידועות.

השימוש בלולאת for הוא כזה:

for (case1;case2;case3) {some_commands}

במקום לעשות לולאת while מסורבלת כמו זאת:

$i=0;

while ($i<3) {

          print $i.”\n”; #הנקודה משמשת לחיבור בין 2 מחרוזות

          $i++;

}

אפשר להשתמש בלולאת for כדי לעשות את אותו הדבר:

for ($i=0;$i<3;$i++) {

          print $i;

}

 

השוואה של כמה תנאים

השוואה של כמה תנאים עובדת רק ל-if ו-while ויש לה שתי צורות:

השוואת "ו-" והשוואת "או-"

את ההשוואה של "ו", כמו את ההשוואה של "או" (זה אומר את שני התנאים או יותר) מקבצים בתוך סוגריים.

את התנאים ב"ו" מפרידים עם "&&" ואת התנאים ב"או" מפרידים עם "||".

דוגמאות:

$a=1;

$b=2;

if (($a==1)&&($b==2)) {

          print “a equals 1 and b equals 2”;

}

if (($a==1)||($b==2)) {

          print “either a equals 1 or b equals 2”;

}

 

סימני השוואה

מספרים

== - שווה ל...

!= - שונה מ...

> - קטן מ...

< - גדול מ...

>= או => - קטן או שווה ל...

<= או =< - גדול או שווה ל...

 

מחרוזות (המחרוזות כמובן עם גרשיים)

eq - שווה ל...

ne - שונה מ...

lt -  נמצא באיי בי סי לפני...

gt - נמצא באיי בי סי אחרי...

le – נמצא באיי בי סי לפני או שווה ל...

ge – נמצא באיי בי סי אחרי או שווה ל...

 

ביטויים רגולריים (Regular Expressions)

למי שלא מכיר, ביטויים רגולריים עושים השוואה, אבל לא מוחלטת (ז"א מספיק רק שהביטוי שאתה רוצה שיהיה קיים וכל השאר מתקבל).

השימוש בביטויים רגולריים דומה להשוואה רגילה רק שמשתמשים ב- =~ לצורך השוואה והביטוי נמצא בין שני "/".

דוגמא:

$a=”hello world”;

if ($a =~ /hello/) {

          print “hello to you too!”;

}

הביטוי “hello world” יתקבל כי המילה “hello” (מה שהשוונו) נמצאת.

 

אפשרויות של השוואה בביטויים רגולריים:

expression^ - חייב להתחיל ב...

$expression - חייב להסתיים ב...

^expression$ - חייב להתחיל ולהסתיים ב...

 

פקודות מערכת

כדי להשתמש בפקודות מערכת (פקודות DOS אם מערכת ההפעלה היא windows או פקודות UNIX) משתמשים בפקודה system ואז את שם הפקודה.

דוגמא:

systemcls”; #מנקה את המסך

 

הערות

למי שלא הבין, # מייצגת הערות.

 

מערכים

מערכים הם כמו משתנים רגילים ($) רק שהם מחולקים לכמה חלקים ומיוצגים ע"י הסימן @. אפשר להציג את כל המחרוזת או רק חלקים ממנה.

את מספר החלק כותבים בתוך סוגריים מרובעים ([]) אחרי שם המערך (ספירת החלקים מתחילה מ-0 ולא מ-1!).

דוגמא:

@a[0]=”h”;

@a[1]=”i”;

@a[2]=”!”;

print @a; #will print “hi!”

print @a[0,1]; #will print “hi”

 

הערה: אם רוצים להכניס את ערך המערך לתוך משתנה רגיל ($) כותבים את שם המערך בתוך גרשיים או שבמשתנה יהיה מספר החלקים ולא הערך:

$a=”@a”; # $a=”hi!”

לא

$a=@a; # $a=2

 

פיצול

פיצול מחרוזות נעשה באמצעות הפקודה split. את הפקודה split נשים במערך (כל חלק יהיה משהו אחר), את המחרוזת שלפיה נפצל נשים בין שני2 "/", פסיק ואת המשתנה או המחרוזת שממנה נפצל (בד"כ מפצלים ממשתנים).

דוגמא לפיצול:

$a=”hello world!”;

@a=split / /, $a;

print @a[0];

מכניס ל$a- את הערך “hello world!”, מפצל אותו לפי הרווח ומכניס את ה"שאריות" ל@a-. אחרי הכל הוא מדפיס את החלק הראשון (“hello”).

 

פונקציות

לפונקציות משתמשים בפקודה sub (קיצור של subroutine). אחרי שניתן שם לפונקציה, את הפקודות של הפונקציה נשים בין סוגריים מסולסלים ונוכל "לקרוא" לה בשתי דרכים:

sub_name();

או

&sub_name;

דוגמא לפונקציה פשוטה:

sub print() {

          print “HELLO 2 U!!!\n”;

}

print();

יצרנו פונקציה בשם print שמדפיסה “HELLO 2 U!!!” וקראנו לה ע"י כתיבת השם שלה עם ().

הסוגריים בשם משמשים לפרמטרים שנוכל להוסיף (לא יוסבר פה).

 

טוב... זהו בינתיים! תגובות, הערות ובקיצור הכווווול:

hobbit_hk@hotmail.com

או באיציק: 127853198