פרק 4: HTML בחטף ותבניות (Templates) רשתקוד כמו שסבתא נהגה להכיןאת הסקירה שלנו על אמצעים להדפסת HTML מתוך Perl scripts , נתחיל מהשיטות הבסיסיות ביותר, ונתקדם מהן. אפילו אם יש לכם מכונה משוכללת לאפיית לחם, עדיין לא מזיק להכיר את ההרגשה של לישה ביד! כמו שראינו בפרקים הקודמים, אנו שולחים מידע לדפדפן המשתמש ב Perl תוך שימוש באובייקט ה CGI. הקריאה לפונקצית ה header באובייקט ה CGI מורה לדפדפן לקבל את כל המידע שיגיע לאחר מכן כ HTML. #!/usr/local/bin/perl use CGI; $cgiobject=new CGI; print $cgiobject->header; #we can now output HTML עד כאן, פשוט. הצורה הבסיסית ביותר ליצירת דף HTML במהירות, היא פשוט להשתמש בפקודת print כדי להדפיס תוכן ותגיות HTML. אנו יכולים לבנות עמודHTML שלם תוך כדי שימוש בשיטה זו, פשוט אבל מיגע. #!/usr/local/bin/perl use CGI; $cgiobject=new CGI; print $cgiobject->header; #build a Web page from scratch print "<HTML><HEAD>"; print "<TITLE>Grandma\'s Old Tyme Web Page</TITLE>"; print "</HEAD><BODY BGCOLOR=\"#FFFFFF\">"; print "<P ALIGN=\"CENTER\">This page was created<BR>"; print "on-the-fly on <B>".localtime(time)."</B></P>"; print "</BODY></HTML>"; בנית עמוד רשת היא לא תהליך אינטלקטואלי מסובך במיוחד, אבל תיצרוך כמות קוד נכבדה ביותר כאשר נרצה ליצור עמוד קצת יותר גדול או מורכב (בכל זאת, העמוד למעלה הכיל משפט אחד בלבד!). בנוסף, אתם יכולים לראות שה HTML עצמו אינו נקי לגמרי - אלא שנאלצנו לסמן גרשיים בעזרת קו נטוי. התוצאה של זה היא שאפילו אם נקודד עמוד שלם, זה יהפוך לאתגר לשנות את העמוד- נגיד, לחזור אחורה ולהוסיף טבלה, לדוגמא. כעת, נוכל להתקדם לבעיה
של דחיסת קוד ה HTML שבתוך פקודת ה
print תוך שימוש בבנאי (constructor Perl) הקרוי "here document". print <<TOLABEL text here TOLABEL תוכלו לבחור כל TOLABEL, למרות שהבחירה הרווחת תהיה EOF, הקיצור של "end of file" (סימן סוף קובץ) . לא אמור להיות שום רווח בין הסימן >> והתווית שתבחרו, כמו שניתן לראות בדוגמה. מובן, שהתווית שלכם אמורה להיות משהו שלא מופיע בתוכן של ה here document עצמו! ניתן לראות בקלות כיצד העיצוב מחדש של קוד הסבתא הישן, ע"י שימוש ב here document משחררת את קוד ה HTML מאחיזת החנק של הפונקציה print. #!/usr/local/bin/perl use CGI; $cgiobject=new CGI; print $cgiobject->header; #build a Web page from scratch $time=localtime(time); print <<EOF <HTML><HEAD> <TITLE>Grandma's Old Tyme Web Page</TITLE> </HEAD><BODY BGCOLOR="#FFFFFF"> <P ALIGN="CENTER">This page was created<BR> on-the-fly on <B>$time</B></P> </BODY></HTML> EOF יהיה הרבה יותר קל לבצע פעולות גזור-הדבק (cut and paste) של HTML , למשל מתוך עורך HTML לתוך סקריפט של Perl וזאת בגלל שאין צורך להתאימו ל here document. בדוגמא הקודמת, חישבנו את הזמן הנוכחי (localtime(time במהירות, אולם לא יכולנו להכניס ביטו Perl לתוך ה here document . למזלנו, הכנסת משתנה לתוך ה here document מותרת. לכן נציב מראש את הזמן לתוך time$ אשר יופיע בתוך ה here document. למרות זאת, הטכניקה של here document דורשת מכם לפלוט קוד HTML ברור, וזה משאיר מספר בעיות:
ה
Perl שאתם צריכים לדעת: פרק 4 "HTML
בחטף ותבניות (Templates) רשת " |