האופרטור last סופר רק לולאות של בלוקים ולא בלוקים אחרים שדרושים לשם יצירת מבנה סינטקטי. הכוונה היא שהבלוק של ה
then בהצהרת ה if לא נחשב,
אלא רק בלוקים שיוצרים את
ה
for, foreach, while ובלוקים רגילים ילקחו בחשבון.
הכוונה בבלוקים רגילים היא כאלו שלא שייכים למבנה גדול יותר כמו לולאה או סאברוטינה או מבנה
if-then-else.
while (<
STDIN>)
# קריאת שורת הקלט כל פעם מחדש
{
if (^
#) #נניח שאנו מחפשים שורת הערה כלשהי
{
if (/
I love perl/)
# ונניח שאנו רוצים הערה כלשהי המכילה את המשפט הזה
{
print "I found the line $_";
last;/* | לשם יציאה מן הלולאה כיוון שמצאנו את השורה שחפשנו | */ |
}
}
if (/^
$/)
# הגענו לשורה ריקה המסמלת אצלנו את סוף הטקסט
{
print "I didnt find the line \n ";
last;/* | הגענו לסוף הטקסט ואין טעם להמשיך לחפש, לכן נצא מן הלולאה | */ |
}
}
שימו לב, ברגע שנמצאה השורה המתחילה ב #
ומכילה את המשפט
I love perl
, נצא ,
כי רצינו לבדוק את שורת ההערה המתאימה הראשונה שנמצאה בטקסט.
להוספת תגובה, אנא התחברו לדרכונט.