السلام عليكم...
أرجوا ان تتحملوني على أسئلتي البسيطة، فأنا لا زلت في طور المبتدئ جداً 
1) هل هناك فرق بين امتداد cgi. وامتداد pl.؟ الذي أعرفه التشابه فيما بينهم في البرمجة بلغة البيرل فما الفارق بينهما؟
2) أعلم أن هذا السؤال مكرر، أريد تحويل الحاسوب لدي كسيرفر، حقيقة حاولت مع وجود الدروس المختلفة لكنني فشلت، فهلا شرح أحدكم الدروس وبالصور وبشكل أبسط 
3) زرت موقع http://bignosebird.com وفيه وجدت درساً بسيطاً عن إنشاء أول برنامج بيرل، وقد نجحت في تطبيق الدرس والحمد لله وهذه شفرة البرنامج البسيطة جداً (لا تضحكون علي!
)
كود:
#!/usr/bin/perl
read(STDIN,$temp,$ENV{'CONTENT_LENGTH'});
@pairs=split(/&/,$temp);
foreach $item(@pairs)
{
($key,$content)=split(/=/,$item,2);
$content=~tr/+/ /;
$content=~s/%(..)/pack("c",hex($1))/ge;
$fields{$key}=$content;
}
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<BODY BGCOLOR=#FFFFFF>\n";
print "<CENTER>\n";
print "THANK YOU<BR>\n";
print "$fields{fname} $fields{lname}</BR>";
print "I will write<BR>\n";
print "you at<BR>\n";
print "$fields{email}<BR>\n";
print "</CENTER>\n";
print "</BODY></HTML>";
السطر الأول من الشفرة مهم جداً، لكن لا أدري لماذا هو مهم؟ فأريد شرح لشفرة البرنامج وبالتفصيل الممل، فبدون شرح شفرة البرنامج لن أستطيع فهم البرمجة بهذه اللغة، فمن منكم يشرحها وله الأجر عند الله؟! 
الذي أعرفه أن أمر print كما لاحظت لإنشاء صفحة HTML تظهر النتيجة بعد انتهاء شفرة البرنامج. هذا فقط الذي تعلمته