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

عام 0 geek4arab
Spread the love
 لغة بيرل Perl و سي جي آي CGI  أضيف في: 1-3-1427هـ
الدرس الأول

لماذا بيرل ؟

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

بناء نص بيرل :

نصوص بيرل هي ببساطة ملفات نص Text Files يمكنك عملها باستعمال محرر نصك المفضل . و لا يمكنك فعل أي شيء بهذه الملفات بدون مترجم لغة بيرل أي نسخة من اللغة نفسها و يمكنك الحصول عليه من هذا الموقع ، و بعد أن تنزل البرنامج و تفك ضغطه أعد تسمية المجلد إلى perl و ضعه في الدليل الرئيسي :C ، ثم شغل الملف Install.bat و بعد التركيب أعد تشغيل الحاسب . الآن يمكنك أن تبدأ ، افتح محرر نصك المفضل و اكتب السطور التالية :

PHP CODE:
0001
0002
0003
0004
0005
0006

<?php #!/c:/perl/bin

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

# End hello.pl

?>

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

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

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

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

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

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

PHP CODE:
0001
0002

<?php print '\'hello world\'','\n';

?>

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

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

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

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

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

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

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

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

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

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

PHP CODE:
0001
0002
0003
0004
0005
0006

<?php $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 بين علامتي الاقتباس ، فقد وضعنا مسافة بعد علامة الاقتباس الأولى مباشرة و مسافة قبل علامة الاقتباس الثانية ، و هذا حتى لا يتشابك النص مع ما قبله أو بعده .

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

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

PHP CODE:
0001
0002

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

?>

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

PHP CODE:
0001
0002

<?php $OneNumber= $Numbers[2];

?>

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

PHP CODE:
0001
0002

<?php @Numbers=(1..6);

?>

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

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

PHP CODE:
0001
0002

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

?>

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

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

سي جي آي هي المفتاح الذي يجعل لغة بيرل تتلائم مع الويب . فالسي جي آي ليست لغة برمجة بل هي كما يقرر الأسم بوضوح (البوابة البينية المشتركة) فهي برنامج بيني يأخذ مدخلاته من صفحة هتمل موجودة على الويب ثم تمرره لبرنامج بيرل الذي يعالجها حسب الغرض المصنوع له ثم يعيده إلى أنبوبة السي جي آي التي تمرره بدورها إلى خادم الويب ليعرضه كصفحة ويب . و يمكنك إيجاد قدر كبير من المعلومات حول المواصفات الرسمية لسي جي آي في هذا الموقع http://hoohoo.ncsa.uiuc.edu/cgi/interface.html .

انتهـــــــــــى

تأليف : فيكرام فاسواني

ترجمة : Single Plural

الكاتب: Single Plural

الكاتب geek4arab

geek4arab

مواضيع متعلقة

التعليقات مغلقة