شروع برنامه نويسي با پرل
يكي از چيزايي كه ممكنه شما هميشه فراموش كنيد اينه كه به سرور بگيد با چه زباني اسكريپت شمارو اجرا كنه ... پسوند .pl اينكارو نميكنه.. و فقط به سرور ميگه چجوري اجرا كنه .
کد PHP:
[PHP]#! /usr/local/bin/perl
[/PHP]
كه در اين خط بايد مسير پرل رو بديد.. اگه نميدونيد مسير پرل كجاست ميتونيد تو خط فرمان از اين دستورات براي جستجوش استفاده كنيد :
کد PHP:
[PHP]Whereis perl
Which perl
find . -name perl –print
[/PHP]
دومين چيزي كه معمولا فراموش ميشه اينه كه به سرور بگيد فايل شما يك فايل اجرايي است
کد PHP:
[PHP]chmod 775 file.pl
[/PHP]
خوب بزاريد بازم با همون مثال معروف Hello World شروع كنيم
کد PHP:
[PHP]#!/usr/local/bin/perl
print"Hello World\n";
[/PHP]
اولين مسير پرل رو نشون ميده و دومين خط پيغام رو چاپ ميكنه و يك سطر به پايين مياد ... این ساده رین مثالی بود که میشد با پرل نوشت .

متغییر ها در پرل :

برای نگه داشتن متغییر در هرزبانی به مکانی برای نگه داری نیاز داریم که اصطلاحا Variable گفته میشه .

یکی از امکانات فوق العاده پرل توانایی شناسایی نوع متغییر از روی اولین کاراکتر میباشد .

همه متغییر ها در پرل با $ یا @ یا % همچنین & و * میتونن شروع بشن .

علامت $ : این علامت برای نشان دادن این هست که متغییر عدد هست یا رشته ای (String) که پرل خودش تشخیص میده که عدد هست یا متغییر رشته ای

و حتی میتونید دو عدد رو باهم جمع کنید... پرل مشکلی باهاش نداره و میتونه خودش تشخیص بده .

علامت @ : این علامت برای نشان دادن یک ارایه برای اعداد است .

علامت % : این علامت برای نشان دادن یک ارایه برای متغییر های رشته ای است . این علامت معمولا در پرل زیاد استفاده میشه معمولا در دستور Key که بعدا باهاش اشنا میشیم .

بزارید مثال ساده ای براش بیاریم :

کد PHP:
[PHP]
#! /usr/bin/local/perl

$firstName="Mehdi";

$last_name="Safary";

print"Hello\n";

print"This Article writen By $firstName $last_name !";
[/PHP]
خیلی ساده و دقیقا مثل پی اچ پی ..... فکر نمیکنم نیازی به توضیح کد بالا باشه ... فقط در تعریف کردن متغییرها دقت کنید ..مثل بقیه زبان ها تو اسم متغییر فاصله نمیزارید .... اسم متغییر با عدد شروع نمیشه....... .

فرم ها : استفاده از فرم ها برای ارسال و دریافت اطلاعات

در این قسمت نیاز هست که کمی از اچ تی ام ال اطلاعات داشته باشید .

اجازه بدین کدهای اچ تی ام ال رو در بیت کد های پرل استفاده کنیم ...

کد PHP:
[PHP]
#! /usr/local/bin/perl

print "Content-type: text/html\n";

print <<'ejraye_code_html';

<html><head>

<title>Hello World</title>

<background="#d1d1d1" text ="#000000"></head>

<body><h1>Salam Be HameGi</h1>

</body></html>

ejraye_code_html
[/PHP]
احتمالا شما هم مثل من ذوق زده شدید ... ما با یک دستور >> print تونسیتم کد اچ تی ام رو اجرا کنیم درواقع به پرل گفتیم شروع به چاپ کردن کن تا زمانی که به عبارت ejraye_code_html برسیی .... خیلی جالبه نه؟؟!!! به همین سادگی کد اچ تی ام ال رو داخل کد سی جی ای خودمون بکار بردیم .

بزارید درباره کوات ها هم چیزی بگم :

(``) : این نوع کوات ها به پرل میگن که دنبال یک دستور العمل باشه .

("") : این نوع به پرل میگه که دنبال عبارت های خاص باش و بیشتر در دستور پرینت استفاده میشه .

('') : این نوع به پرل میگه که لازم نیست دنبال عبارت خاصی در دستور پرینت بگردی .

بزارید همه اینا رو با یک مثال توضیح بدم :

کد PHP:
[PHP]
#! /usr/local/bin/perl

print "Content-type: text/html";

$mydate=`date`;

chop $mydate;

print <<"ejraye_code_html";

<html>

<title>Gesmate dovom Amoozeshe Perl--Mehdi Safary</title>

today's Date Is : $mydate

<hr noshade></html>

ejraye_code_html

print <<'ejraye_code_html2';

<html><body bgColor=#010101>today's Date Is : $mydate </html>

ejraye_code_html2
[/PHP]
فرق بین "" و '' در این است که در حالت اول متغییر تفسیر میشه ... ولی درحالت دوم همونجوری چاپ میشه ... برای مثال برای حالت اول مینویسه Sun Mar 13 0056 CDT 2006

خوب تبریک میگم ... تا اینجا تونستیم یه برنامه ساده بسازیم اجازه بدید یک فرم هم باهاش بسازیم و اطلاعات رو از داخل یک فیلد به برناممون بفرستیم .

کد اچ تی ام ال به این صورت هستش

کد PHP:
[PHP]
<form action="first.cgi" >

<input type=text name=enter SIZE=20 Maxlenth=30 value="Mehdi Safary"></form>
[/PHP]
فکر نمیکنم نیازی باشه تا کدهای بالارو توضیح بدم ... چون با بیشترشون آشنا هستید .

یه چیز دیگه اگه فرم خودتون رو اینجوری ارسال کنید

کد PHP:
[PHP]
<form action="nph-first.cgi">

<input type=text name="txt" value="Mehdi Safary"></form>
[/PHP]
سرور ترجمه نمیکنه فایل رو .....درواقع اسکریپت های سی جی ای رو که با nph- شروع میشن بدون اینکه تفسیر بشن به برنامه فرستاده میشن .

حالا در فایل سی جی ای

کد PHP:
[PHP]
#! /usr/local/bin/perl

$mydate='date';

print << "End"

HTTP/1.0 204 No Content

Date : $mydate

Server : $SERVER_SOFTWARE

MIME-version : 1.0

End
[/PHP]
مهمترین دستوری که اینجا هست HTTP/1.0 204 No Content هست که به مرورگر میگه ... چیزی برای نمایش دادن وجود نداره ... پس یک صفحه خالی نشون داده میشه درحقیقت ما هدر صفحه ای که ارسال شده بود رو نشون ندادیم و هدر خودمون رو نشون دادیم