تعليم لغة بيرل Perl و سي جي آي CGI

 

 

الدرس الأول

 

لماذا بيرل ؟

صفحة الويب هي وثيقة نص مصاغة بنظام من الأوامر (أو لغة برمجة) تسمى هتمل HTML ، هذه اللغة تخبر مزود أو خادم الويب كيف يجب عليه عرض الصفحة على الشاشة . و لكن هتمل ليس بها تسهيلات عملية لجعل صفحة الويب تفعل شيئاً ما ، يجب عليك في هذه الحالة أن تعتمد على وسائل أخرى لعمل ذلك . لغة البرمجة بيرل تقدم الطريقة الأكثر شيوعاً لجعل صفحة الويب تفعل شيئاً ، و هذا لأن بيرل في الأساس متاحة بحرية و مجانية و ستعمل على أي نظام كمبيوتر يمكنه استضافة خادم ويب (و هذا الخادم لا يشترط أن يكون جهاز كمبيوتر ، بل يمكن أن يكون برنامج صغير) . و يتم استعمال بيرل مع سي جي آي على الغالبية العظمى من مواقع ويب لابتكار صفحات ويب التي تفعل شيئاً ما أكثر من أن تبدو بمظهر جميل و تنتظر .

بناء نص بيرل :

نصوص بيرل هي ببساطة ملفات نص Text Files يمكنك عملها باستعمال محرر نصك المفضل . و لا يمكنك فعل أي شيء بهذه الملفات بدون مترجم لغة بيرل أي نسخة من اللغة نفسها و يمكنك الحصول عليه من هذه الوصلة حيث يجب أن تنزل أولاً البرنامج Windows Installer +2.0 ، ثم اضغط على زر next لتصل إلى صفحة أخرى تطلب بعض المعلومات منك ، يمكنك تركها خالية ثم اضغط على الزر next مرة أخرى لتصل إلى صفحة أخرى تستطيع فيها أن تنزل المترجم بالنقر على الوصلة MSI ، ثم يجب أن تركب البرنامج الأول ، و بعد هذا تستطيع أن تركب نسخة المترجم ثم أعد تشغيل الحاسب . الآن يمكنك أن تبدأ ، افتح محرر نصك المفضل و اكتب السطور التالية :

#!/c:/perl/bin

print "Hello World!","\n";

# End hello.pl

و احفظ الملف بإسم Hello.pl ، الآن اذهب إلى نافذة الدوس Dos و اذهب إلى المكان الذي حفظت فيه الملف Hello.pl و اكتب perl Hello.pl ، يجب أن تبدو النتيجة مثل الصورة التالية :

مبروك .... أنت الآن مبرمج بيرل .

تحليل المثال :

# هذه العلامة هي رمز التعليق في بيرل و هي تعني أن أي شيء يتبعها حتى نهاية السطر يتجاهله المترجم . و هذا هو المكان الذي تستطيع فيه توثيق برنامجك حتى يستطيع الآخرين ، أو أنت بعد عدم اقترابك من البرنامج لمدة أشهر أن تفهم عم يدور هذا البرنامج . في هذا المثال لم نذكر سوى سطر تعليق واحد فقط و هو أساسي في كل برامج بيرل و هو يحدد مكان المترجم الخاص باللغة في قرصك الصلب . و بالرغم من أن هذا السطر لا تتطلبه نسخة بيرل الخاصة بالويندوز إلا أن المترجم قد يعطيك رسالة خطأ إذا تجاهلته أو كتبت المسار بطريقة غير صحيحة .

استعملنا في هذا المثال وظيفة واحدة فقط هي وظيفة اطبع print و في هذه الحالة فإننا نخبر print أن تطبع إلى الشاشة العبارة الموجودة أمامها بين علامتي الاقتباس ثم نضع فاصلة (و هي مهمة جداً) و نتبعها برمز السطر الجديد "n\" و هذه الشرطة المائلة الخلفية يطلق عليها رمز هروب لأنها تعطي الحرف الذي يأتي بعدها معنى خاص . ثم في نهاية السطر نضع فاصلة منقوطة ، و هي هامة جداً و كل سطور الشفرة في بيرل يجب أن تنتهي بها ، لأن المترجم لن يستطيع وحده معرفة أين ستنتهي جملة الشفرة التي قد تطول لأكثر من سطر .

إذا أردت أن تظهر الجملة نفسها على الشاشة بين علامتي اقتباس فيمكنك استعمال رمز الهروب و هو علامة الشرطة المائلة الخلفية \ قبل كل علامتي اقتباس تريدهما أن يظهرا في النص المطبوع على الشاشة . فمثلاً السطر التالي :

print "\"hello world\"","\n";

سوف ينتج عنها الشكل التالي :

هل فهمت الآن معنى رمز الهروب \ . السطر الأخير من البرنامج كما عرفنا يبدأ برمز التعليق # و هو يخبرنا بنهاية البرنامج .

 

الكميات العددية و القوائم في بيرل :

هنا سوف نتعامل مع ثلاثة مفاهيم جديدة هي المتغير - الكمية العددية - و القائمة .

المتغير : معلومات مخزنة في مكان ذاكرة محدد .

الكمية العددية : متغير واحد يحدد معلومات عددية أو معلومات عن رمز سلسلة .

القائمة : عدد من الكميات العددية المخزنة بالتعاقب في متغير واحد .

السلسة String في معظم لغات البرمجة هي سلاسل بسيطة من الحروف مثلاً "الاتحاد قوة" هي سلسلة ، و لاحظ أنها بين علامتي اقتباس . هذا مهم في بيرل

الشيء المهم تذكره عن المتغيرات العددية أنها دائماً تبدأ بعلامة الدولار $ و يمكنك تسميتها بأي شيء تريده ، المهم ألا تنسى علامة الدولار .

تحذير : بيرل لغة حساسة جداً أي أنها تميز بين الحروف الكبيرة و الصغير Capital and Small Letters . لذلك فإنها سوف تعتبر

$Variable Name

و

$variable name

متغيرين عدديين مختلفين .

لتوضيح مفهوم تخزين المعلومات في متغيرات عددية سوف نسوق المثال التالي ، افتح محرر نصك و اكتب السطور التالية و احفظها باسم hello2.pl :

#!c:/perl/bin

# Hello 2. a slightly more sophisticated "hello world"

$Hello="hello world"; # String variable

$TimeAround=2; # Numric variable

print $Hello. " for the ". $TimeAround. "nd time","\n";

# End Hello2.pl

عندما تشغل البرنامج سوف ترى مثل هذه الشاشة :

لاحظ المسافات في سطر print خاصة في كلمتي for the بين علامتي الاقتباس ، فقد وضعنا مسافة بعد علامة الاقتباس الأولى مباشرة و مسافة قبل علامة الاقتباس الثانية ، و هذا حتى لا يتشابك النص مع ما قبله أو بعده .

القوائم هي مجموعة من المعلومات أو المتغيرات مخزنة في مجموعة واحدة يمكن لأي شيء أن يدخل فيها سواء كان سلاسل أو أرقام أو حروف . و يحمل العنصر الأول فيها رقم صفر .

رمز القائمة هو @ و تستطيع أيضاً تسميتها كما تشاء المهم ألا تنسى @ ، مثلاً :

@Numbers=(1,2,3,4,5,6);

هي قائمة تحتوي على ست عناصر أو أرقام . يمكننا أن نشير إلى عنصر واحد منها أو عدد واحد فقط كمتغير عددي كالآتي :

$OneNumber= $Numbers[2];

استعملنا هنا للإشارة إلى القائمة Numbers علامة الدولار $ و هي علامة المتغير العددي بدلاً من @ و هي علامة القائمة و هذا لأن العنصر الذي أشرنا إليه في القائمة و هو العنصر الثاني هو متغير عددي . كذلك يمكنك استعمال الصيغة التالية إذا كانت القائمة تتكون من متغيرات عددية فقط :

@Numbers=(1..6);

هذه الصيغة لتعريف القائمة كلها التي تحتوي على الأرقام من 1 إلى 6 و ليس لاستدعاء عنصر واحد من عناصرها .

عندما نضع سلسلة أو سلاسل في قائمة أو مجموعة يجب أن نميزها عن غيرها من عناصر القائمة و ذلك بأن نضعها بين علامات اقتباس مفردة و ليست مزدوجة كالآتي :

@list=(1,2,'Red','Green',3);

هذا المثال لقائمة تحتوي على متغيرات عددية و سلاسل حرفية معاً .

 

CGI أو Common Gateway Interface و بيرل :

سي جي آي هي المفتاح الذي يجعل لغة بيرل تتلائم مع الويب . فالسي جي آي ليست لغة برمجة بل هي كما يقرر الأسم بوضوح (البوابة البينية المشتركة) فهي برنامج بيني يأخذ مدخلاته من صفحة هتمل موجودة على الويب ثم تمرره لبرنامج بيرل الذي يعالجها حسب الغرض المصنوع له ثم يعيده إلى أنبوبة السي جي آي التي تمرره بدورها إلى خادم الويب ليعرضه كصفحة ويب . و يمكنك إيجاد قدر كبير من المعلومات حول المواصفات الرسمية لسي جي آي في هذا الموقع .

 

استفسار ؟ راسلني

الدرس الثاني