פרק 2: קישור Perl לעמודי הרשתCGI ותיכנות מונחה עצמים (object oriented) ב Perl: פלטכרגע, סיימנו לקרוא את הקלט שנשלח בטופס. מה נעשה איתו? כל דבר, למעשה. תוכנית ה Perl שלנו יכולה לעבד מידע זה בכל כך הרבה דרכים, החל מחישובים מתמטיים ועד לשימוש במידע שהתקבל כפרמטרים במעבר על בסיס נתונים. כמובן, שרמת הקושי של ביצוע משימות אלו, משתנה ממשימה למשימה. בכל אופן, יהיה זה צפוי שלבסוף נרצה להחזיר חלק מהתוצאות לדפדפן המשתמש. אחרי הכל, כרגע המשתמשים המסכנים בוהים בלוגו של הדפדפן מסתובב לאיטו, ומחכים בציפייה לסוג כלשהו של תגובה מתוכנית ה Perl שלנו. #!/usr/bin/perl use CGI; #create an instance of the CGI object $cgiobject = new CGI; #grab the values submitted by the user $name=$cgiobject->param("username"); $age=$cgiobject->param("userage"); #output HTML header to web browser print $cgiobject->header; #evaluate data, output appropriate message print "<HTML><BODY>"; print "<CENTER>Hello, $name</CENTER><BR>"; if ($age<18) {print "<H3>We\'re sorry, but you are quite young ". "to use Currency Central. Money is the root ". "of all evil. Please ask a parent.</H3>"} else {print "<H3>Congratulations! You are beyond the age ". "of corruption. Click <a href=\"next.html\">here</a>". "to continue.</H3>"} print "</BODY></HTML>"; בואו נעצור את סיפור העלילה המסמרר שקראנו בנקודה בה אנו שולחים את ה HTML header לדפדפן-- ה CGI object מפעילה את המתודה header, השולחת עם הפעלתה שורה מתאימה של פקודות header text לדפדפן כדי שיציג את כמו שצריך פקודות הפלט בHTML שיבואו לאחר מכן. בעצם אין לנו שום צורך לדעת שום דבר על ה header עצמו, זה מה שהופך את CGI object לכלי יפיפה כל כך. פשוט שילחו את ה header לפני שאתם שולחים את ה html והכל יהיה בסדר. בסופה של תוכנית Perl זו אנו בונים עמוד אינטרנט חדש. תוך שימוש בפונקצית ה print המוכרת, אנו מדפיסים את פקודות ה HTML הנדרשות כדי ליצור את העמוד המבוקש. שימו לב לאפשרות של שילוב מידע מתוך תוכנית ה Perl לתוך העמוד שאנו יוצרים כפלט. לדוגמא, הברכה"Hello, $name" תכניס את שם המשתמש לברכה. משפט ה if...else משמש להערכת גיל המשתמש. במקרה זה, הפעולה היחידה שנבצע היא לפלוט הודעה שונה בכל פעם ע"פ הגיל הנתון. ישנם עוד כמה טריקים של Perl המפוזרים בדוגמה שלנו ששווים בחינה מדוקדקת. שימו לב לקו הנטוי (\) לפני הגרש הבודד במילה "We're". זה בסה"כ מבטיח ש Perl תדפיס גרש יחיד ולא תפרש את הגרש כחלק מהצהרה כלשהי. ככלל, נשתמש בסימן של קו נטוי במקרים בהם Perl עלולה לפרש תו בצורה לא נכונה. שימו לב גם לדרך שבו רצפי הפלט חולקו לשני משפטי print ארוכים. למרות שיכולנו בעצם לכתוב הכל במשפט אחד ארוך, היה נוצר קושי לקרוא ולהבין מאמר זה. לכן, כדי שמאמר זה יהיה יותר קריא, חילקנו את מחרוזת הפלט לחלקים, עם אופרטור ההמשכיות (.) בין כל חלק. בכל מקרה התוצאה זהה למצב שבו היינו כותבים הכל במשפט ארוך. לסיכום, ראינו את שני המתודות הנפוצות באובייקט ה CGI: param , אשר מאחזרת מידע מזוהה המוקלד לתוך עמוד הרשת ו header, המכינה את הדפדפן לקלוט תוכן ב HTML . קלט :Perl
ותכנות מונחה עצמים ב CGI
|