FANDOM



נמצאה תבנית הקוראת לעצמה: תבנית:Perl Perl היא שפת תכנות פשוטה מאוד למי שלא רגיל לשפות תכנות אחרות. בשפה זו, כל הטיפוסים מרוכזים כטיפוס אחד, והכל עובד בפשטות.


Achtung

שימו לב:

מי שרגיל לשפות אחרות, כמו C, Java או C# יתקשה מעט ללמוד את Perl, אז אם משהו לא מובן, זה נורמלי (גם לי היה את זה...).


נמצאה תבנית הקוראת לעצמה: תבנית:Perl



הכנה

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

למשתמשי Windowsעריכה

לכו לאתר של ActivePerl כאן. בתפריט בצד ימין לחצו על "Get ActivePerl". בדף שהגעתם אליו, לחצו למטה על הקישור שכתוב עליו "Download" ויש לידו תמונה של חץ כלפי מטה. הגעתם לדף שבו ממלאים פרטים. לא צריך למלא שם כלום. פשוט לחצו על "Continue". עכשיו הורידו את הגרסה החדשה ביותר שם שמתאימה למערכת שלכם (סביר להניח שאתם צריכים את מה שיש בתיבה הירוקה בקישור הראשון) והתקינו אותה. עכשיו אתם מוכנים!

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

שלום עולם!

נמצאה תבנית הקוראת לעצמה: תבנית:Perl כתבו בעורך הטקסט שלכם את התוכנה הבאה:

print "Hello, world!";

עכשיו, שימרו את התוכנה איפה שמתחשק לכם וקראו לה Hello.pl.


Achtung

שימו לב:

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


פתחו חלון של דוס (בחלונות XP, חלון של CMD) ונווטו בו אל התיקייה שבה שמרתם את הקובץ וכיתבו perl Hello.pl, ולחצו אנטר.

אם הכל נעשה כשורה, נכתב לכם על המסך:

Hello, world!

מה עושה התוכנה?עריכה

הפקודה print מקבלת רשימה של דברים ומדפיס אותם אחד אחרי השני. במקרה שלנו, הרשימה שנכתבה היא רשימה של איבר בודד המכיל את המחרוזת Hello, world!, אז הפקודה גורמת למחשב להדפיס למסך את המחרוזת Hello, world!. באופן דומה היינו יכולים לרשום print "Hi" ולקבל על המסך את המילה Hi.

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

משתנים

נמצאה תבנית הקוראת לעצמה: תבנית:Perl משתנים הם דברים ששומרים בתוכם מידע. ב-Perl, משתנים בסיסיים, המכונים סקלרים, מיוצגים על ידי $ ואז שם כלשהו, לדוגמה $number. ב-Perl אין חובה להצהיר על משתנים, אבל מומלץ להצהיר עליהם כך:

my $<varName>;

כאשר varName הוא שם המשתנה.

הצבה במשתניםעריכה

הצבה במשתנים מתבצעת כך:

$<varName>=<value>;

כאשר varName הוא שם המשתנה ו-value הוא הערך שיוצב במשתנה.

לדוגמה, השורות הבאות יציבו במשתנה $hello את המחרוזת Hello, world! וידפיסו אותו:

my $hello;
$hello="Hello, world!";
print $hello;

אפשר גם לקצר את התוכנה ולכתוב את ההצהרה וההצבה בשורה אחת:

my $hello="Hello, world!";
print $hello;

בשלב זה אתם לא יכולים להצהיר על כמה משתנים בבת אחת, אלא צריך להצהיר על כל משתנה בשורה נפרדת:

my $hello="Hello, ";
my $world="world!";
print $hello, $world;

מה התוכנה עושה?

מצהירים על שני משתנים: $hello ו-$world, המכילים ביחד את המחרוזת Hello, world! ומדפיסים אותם.

שרבובעריכה

ב-Perl יש מושג הנקרא שרבוב, או שיבוץ (Interpolation). אם יש שם של משתנה בתוך מחרוזת, לדוגמה: "Hello, $world!", זה לא יוצג איך שזה במחרוזת, אלא המשתנה ישובץ שם, אז אם במשתנה $world יש 45, לא יוצג Hello, $world, אלא Hello, 45. שרבוב קורה גם ברשימות מכל סוג וגם בתווים מיוחדים שנתייחס אליהם בהמשך.


Thumbs up

עכשיו תורך:

כתוב תוכנית שמדפיסה את הסכום של המספרים 56, 73 ו-29 על ידי שיבוץ. (סכום עושים על ידי הסימן "+" בין כל שני מספרים)




יש לשים לב ששיבוץ קורה רק בין גרשיים, אבל לא במחרוזת שמוקפת בגרש אחד מכל צד, לדוגמה, 'Hello, $world' יישאר כמו שהוא.

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

תרגילים

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

תרגיל מספר 1עריכה

Thumbs up

עכשיו תורך:

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



ביטויים חשבוניים

נמצאה תבנית הקוראת לעצמה: תבנית:Perl ב-Perl יש כמה אופרטורים מתמטיים:

האופרטורהמשמעות
+חיבור
-חיסור/סימן שלילי
*כפל
/חילוק
%מודולו (שארית)
**חזקה

באופרטורים אלה ניתן להשתמש בין מספרים לבין מספרים, בין מספרים לבין משתנים בסיסיים, בין משתנים בסיסיים לבין מספרים, ובין משתנים בסיסיים לבין משתנים בסיסיים.


Achtung

שימו לב:

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


אופרטורים מתמטיים נוספים, הפועלים על משתנים מסוג סקלר בלבד הם:

האופרטורהמשמעות
++הגדלה עצמית
--הקטנה עצמית

פעולת האופרטורים האלה, הם כמו פעולתם ב-C. הם מגדילים או מקטינים ב-1 את המשתנה מסוג סקלר עליו הם פועלים.

$x++;
++$x;

שניהם יגדילו את $x ב-1, ו-

$x--;
--$x;

שנים יקטינו את $x ב-1.

אז מה ההבדל בין $x++ לבין ++$x?

ההבדל הוא שבמקרה הראשון, קודם $x ייבחן, ואז יוגדל, ובשני הוא קודם יוגדל. ומה המשמעות של זה?

את ההבדל אפשר לראות כשננסה שני ביטויים:

$y=5 + $x++;
$y=5 + ++$x;

נניח ש-$x שווה 6. במקרה הראשון $y יהיה שווה ל-11, ואז $x ייהפך 7, ואילו במקרה השני, $x ייהפך ל-7, ואז $y יהיה 5+7, שזה 12. שימו לב, שבמקרה הראשון כל הרווחים מיותרים, אבל במקרה השני, הרווח ביו ה-+ הראשון לשני הוא חשוב.


Thumbs up

עכשיו תורך:

למה חשוב שיהיה כתוב $y=5+ ++$x;, ואסור לכתוב $y=5+++$x; (חוץ מהסיבה שזה לא נח לקרוא...)




כללי קדימותעריכה

כמו במתמטיקה רגילה, חלים כללי קדיומיות בין האופרטורים ב-Perl.

חזקה קודמת לכפל, חילוק ומודולו, שקודמים לחיבור וחיסור.

יש גם כללי אסוציאטיביות, לפיהם, כמו במתמטיקה רגילה, האופרטורים מאותה רמה נקראים לפי סדר מסויים.

חזקה קוראת מימין לשמאל, אז 4**3**2 שקול ל-4**(3**2), ולא ל-(4**3)**2.

שאר האופרטורים הם משמאל לימין, אז 1/2*3 שקול ל-(1/2)*3, ולא ל-1/(2*3).

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

רשימות

נמצאה תבנית הקוראת לעצמה: תבנית:Perl

מערכים וטבלאות גיבוב

Perl/מערכים וטבלאות גיבוב

פלט וקלט

Perl/פלט וקלט

לולאות ותנאים בוליאניים

Perl/לולאות ותנאים בוליאניים

מחרוזות וביטויים רגולריים

Perl/מחרוזות וביטויים רגולריים

קבצים

Perl/קבצים

ייחוסים

Perl/ייחוסים

פרוצדורות

Perl/פרוצדורות

מודולים

Perl/מודולים

תכנות מונחה עצמים

Perl/תכנות מונחה עצמים

נספחים

Perl/נספחים