מסדי נתונים / בחירת מסד הנתונים האידיאלי / ePerl כשפרל פוגשת את HTML


ePerl כשפרל פוגשת את HTML


למען ההגינות עלי לציין שכדי להסתדר עם ePerl עליכם לדעת פרל וHTML - אתם יודעים, נכון?
במקרה שלא, החשיבו את העמודים הבאים כמבוא מהיר. בואו נתחיל במבט על מסמך HTML בסיסי.

<HTML> <HEAD><TITLE>A simple HTML document</TITLE></HEAD> <BODY> <P> This is about as simple as it gets. No big deal. </BODY> </HTML>


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

<HTML> <HEAD><TITLE>A slightly less simple ePerl-HTML document</TITLE></HEAD> <BODY> <P>


בדיוק לפני הפרל המוטמע

<HR> <? my $index; foreach $index ( 1 .. 10 ) { print "Currently on loop index: $index\n"; } !> <HR> <P>


כעת אנחנו בדיוק אחרי הפרל.

</BODY> </HTML>


אני מניח שתוצאת הקוד ברורה לכולם. ניתן לצפות בה כאן , כל מה שעשיתי זה בעצם לולאה קטנה שתפיק הודעה למשתמש בכל פעם שמתבצעת הפעולה.
תג הפתיחה של ePerl הוא ?> , תג הסיום הוא !>.
בנוסף ניתן לפנות לWEB ע"י פקודת פרל הרגילה - "print" בתוך בלוק הפרל.

רק עוד כמה דברים שיש לזכור בעבודה עם ePerl.


ePerl מזהה באופן אוטומטי את סוג המסמך ומפיקה את כותרת ה htpp המתאימה: אם המסמך הוא html היא מפיקה text/html אחרת פשוט נוצר text/plain.
ל ePerl יש קיצור מיוחד להכנסת ערכי משתנים ל html שנראה כך : <?=$VARIABLE!>.
בהמשך לתג הסיום !> ניתן להוסיף // כדי למנוע מהבלוק <? ... !> ליצור שורה חדשה. זה עוזר לניקוי קוד ה htmlשנשלח ל WEB.
ניתן לכלול קבצים נוספים ע"י שימוש בהצהרה include# .

אני רוצה להעלות עוד שתי נקודות לפני שנתקדם הלאה עם ePerl. לשתי ההערות יש קשר הדוק עם mod_perl/Apache

Mod.perl משמש כ interpreter לפרל המקושר ל Apache .

המשמעות היא שכל תוכנית ePerl שתרוץ לא תרוץ בפני עצמה, אלא כתהליך משני בתוך שרת האפאצ'י.
התהליך הזה מגביר את המהירות של התוכנית, אבל יש לו גם צד שלילי. הוא יוצר המון בעיות של שמות משתנים, והרי אתם לא רוצים שמשתני פרל מכמה תוכניות שונות, שבמקרה נושאים את אותו שם, יתערבבו אחד בשני.
ePerl מאוד מודאגת מהמקרה הזה, וכדי להרגיע אותה עלינו להכריז על כל המשתנים בתוספת הקידומת .my
מילת המפתח הזו גורמת לפרל לאכסן את המשתנה בקוד השייך לו בלבד ולא בשום מקום אחר.
באמת, זה עובד, זה כל מה שצריך לעשות כדי לפתור את הבעיה.
דבר שני, עלינו להיות זהירים מאוד כאשר אנחנו משתמשים בהצהרת include# , מכיוון שבעיה עלולה לצוץ. דמיינו קובץ ePerl קטן בשם TT>time.iphtml :

<? print scalar localtime; !>//


אני עלול לרצות לכלול את הקובץ הזה בקובץ גדול יותר:

<HTML> <HEAD><TITLE>The Current Time</TITLE></HEAD> <BODY> <P> The current time is: <B> #include time.iphtml </B> </BODY> </HTML>


(למקרה שתהיתם - iphtml זה ראשי תיבות של Internally Parsed HTML )

הטכניקה שmod_perl משתמשת בה להאצת המהירות של תוכניות פרל בשרת אפאצ'י היא טכנולוגיה הבנויה על תפיסת הקובץ לאחר שעבר קומפילציה.
המטרה היא לזכור את הקובץ האחרון שקומפל כדי לא להצטרך לקמפל אותו מחדש - דבר שהגיוני מאוד לעשות,
אבל מה קורה אם הקובץ time.iphtml שונה? התוכנית לא כל כך רגישה לשינויים שנעשים בקבצים מוכללים, כך שאתם יכולים לצפות תוצאות טרגיות במקרים שכאלה.



עמוד הבא: DBI-ממשק מסד הנתונים של פרל >>




מבט כללי
שעור 1
הטכנולוגיה הלא נכונה
לבעיה הלא נכונה

דמיין את כל האנשים
(נכנסים לאתר שלך)

מה האופציות שלי?
למה באינטרנט?
אבל איך?
משהו ללעוס בדרך
שעור 2
הכרות עם שדה
המשחקים

Windows NT לעומת
Linux

התקנת לינוקס והתוכניות
הנלוות

ציפיות
שעור 3
מבוא
MySQL ושאר עניני
שרת/מסד נתונים

MySQL,SQL,DDL
ו-DML

סיכום
שעור 4
פילוסופית ה-Embedded
Web-Programming

ePerl-כשפרל פוגשת את
HTML >
DBI-ממשק מסד הנתונים
של פרל

הדרך שלפנינו
שעור 5
מתחילים לעבוד
CGI.pm הבלתי נמנע
Escape Sequences
ומסד הנתונים שלך

הטבעת ביטויים יחסיים
במחרוזת
Here-Document

הטבעת תת-רוטינות
מחברים את הכל
מטפלים בטפסים עם
שאילתות SQL

מעבדים את תוצאות
הטופס עם-CGI.pm