בחירת מטרה שונה - האופרטור ~=
לעיתים לא נרצה לבצע התאמה דווקא למחרוזת שב
_$
אלא למחרוזת אחרת.
האופרטור ~= לוקח ביטוי רגולרי בצידו הימני ומחפש התאמה במחרוזת שמשמאלו.
האופרטור מחזיר אמת או שקר בהתאם.
$a =
"hello world";
# השמת מחרוזת רגילה
$a =~ /^he/ ; /* | שואל האם יש התאמה בין המשתנה לבין הביטוי הרגולרי , זאת אומרת , האם המחרוזת שבמשתנה מתחילה ב
he | */ |
# יוחזר true
$a =~ /(.)\1/ ; /* | שואל האם יש תו כלשהו במחרוזת שחוזר על עצמו, ויחזיר אמת כי הוא מזהה את ה
l
הכפול
| */ |
# יוחזר true
$a =~ /^(.)\1/ ; /* | שואל כמו מקודם אם יש תו כלשהו שחוזר על עצמו , אך האם התו הכפול הזה נמצא בתחילת המחרוזת , התשובה היא לא
| */ |
# יוחזר false
המטרה משמאלו של ה
~=
יכולה להיות כל דבר שמהווה מחרוזת, למשל
< STDIN>
.
print "Do you want to exit? (yes\no)";
if (<
STDIN>=~
/^[yY]/ /* | האם המחרוזת מתאימה לביטוי הרגולרי שמימין , זאת אומרת , האם היא מתחילה באחת משתי האותיות
| */ |
)
print " Bye-Bye!";
פה ה
< STDIN>
מוצא את השורה הבאה בקלט, ומייד מחפש התאמה בינה לבין
[yY]^.
שימו לב- פה שורת הקלט לא נשמרה.
להוספת תגובה, אנא התחברו לדרכונט.