صفحه 1:
Perl دانشگاه صنعتی شریف 07

صفحه 2:
عناوین بخش ها * بخش اول : معرفی ۳611 | سر ۳ 1 ‎aio‏ ایی با برنامه نویسی 3611 و واسط درگاه

صفحه 3:
سرفی ۳9۲

صفحه 4:
معرفى ‎pee aol ee‏ ‎٠١ Practical Extraction and Report Language‏ ‎Pathologically Eclectic Rubbish Lister )‏ &( * 1۱ epee connects es Even aN VC tere oe ۱ Egy see oer nine! bry on ‎sre) 3‏ تكن زبان © ات

صفحه 5:
محاسن ۳۵۲1 یک زبان ساده و در عین حال کامل asi cle obj 5 ( Pascal, C) ve ‏:ود ب كا‎ 2 Roa ieee

صفحه 6:
ECS Dre) * نبشته هاى 511611ها (5611215 511611)معمولاً در فايل هاى كوجك كه به يكديكر اشاره می کنند نوشته می شوند ولی 611 به چنین توانایی در قالب یک ت ‎Pea‏ ‎neo ae kee‏ را ‏* در اؤايل,1990 :2651 باعث تبديل سريع بسيارى ارَاسَنَاد ‎ore‏ ‎aCe eee eed ۳‏

صفحه 7:
نی * زبان شلوغى محسوب مى شود. ۲ب .دسر 5 (برای متال 5 راه برای پیاده سازی یک جمله شرطی دارد.) * ناخوانا مست. ‎ae : 0‏ 6 در ‎eee‏ توان محصولی تجاری ایجاد ‎Lee‏

صفحه 8:
۳21 ‏رت‎ ‎۱ ‏و رح‎ tat peje py © ۳ ۳ Administration _ Internet Programming ‏الات‎ ee See ee ao ae 0 By SB S| ape ‏تعاب‎ * کوک نامنو ا ا ل

صفحه 9:
و۱92 اا ‎ager‏ رار سيك ال ا ل در اختیار همه هست. ا كا 0 0 Bune ‏ا‎ Perl t Js, ‏رت‎ we ‏نسخه 5.8.0 ۳6۲1 است که در‎ 0

صفحه 10:
71 متاول‌تریرنبازیرنامه نویسی‌ولسط در تا ‎(CGI‏

صفحه 11:
250 ‏ل‎ Bel Wet Serio) Whereis the script | Where ich seript | moths codelocated? | code executed? ۲ Infies inthe CGLBIN 0 ‏كسك | تسه رت‎ ۱ Enbedded inthe PHP, ColdFusion, ASP HTML document On the server. ‎Embeddedin the On the user's PC‏ تق ‎ge HTML document | byt brome browser.‏ ‎five nie | ovnewesre: | the server by their browser. ‎

صفحه 12:
ی ار نویسی در ‎Perl‏

صفحه 13:
معدمه به زبان 2611 بايد با يسوند .121 2 ‎rea a Oe‏ ۰ ۳ لت سر مسا دنا ریا

صفحه 14:
۱9 eyes) ۱ ۴ را اف رل ۱9/۰ اه ۱ D:\perl5\test\MPListrings\ perl filename.pl » cgi-bin pb t | folder jo |, besl ub out ants cle CGlelelcl, * ‏ا ل‎ STC NCS Bl yee ia) cre http://www.servername.com/cgi-bin/filename.cgi

صفحه 15:
اشنابى ابتدابى 00 ie ye yee Roca aks sl eee ree LO tee ‎٩1101 *‏ یک خط ورودی را نشان می دهد که به شکل استاندارد در این زباره تاد سس شود و شامل سر توح ستیری لد بر تام ورد ستت انس زارد سازید بی باشد.

صفحه 16:
Bi ee pe ep ple ea aly ly 9 ۰: ‏ات‎ ‎7 3141592: ‏برنامه ای بساده که ورودی را ثریافت کرده و در خروجی چاپ می کنند:‎ * 1: #!/usr/local/bin/perl 2: $inputline = <STDIN>; ‏زر مصتلاتمرصتق )تم ریق‎

صفحه 17:
۳ ۳ در زیر تعدادی از صورت های نادرست تعریف متغیر را می بینید: وصلوهزهه فا جمامحعقحل ل 0 ‎there must be at least one letter in the‏ # في ‎name‏ ‎۰ 25 # second character must be a letter ‎again, the second character must be a letter‏ # ات ‏عسمم عاطفاعة» ه صذ ! ه عتكتقط تصق جره #. إعاطمضة:ة » ‎05 ‏کرو‎ # you can't have a. in a variable name ‏* متیر های این زین 5۵95116 6 هستند یعبی متغیر های زیر با هم متفاوت هلستند: ‏اختدلاة » ‎0 ‏وم

صفحه 18:
۳ * مثالی از برنامه ای که مابل را به کبلومتر تبدیل می کند: 1 ‎#1/usr/local/bin/perl‏ 2: 3: print ("Enter the distance to be converted:\n"); A: $originaldist = ‏ساد‎ as ۳۹ 1 10; print (Soriginaldist, " miles =", $kilometers, 11: " kilometers\n"); 0

صفحه 19:
داده ها #!/usr/bin/firstExample. pl print "Hello" ." " . "world\n"; print "hi there " . 2 . " worlds!” ."\n"; print Ge + 6( . ۳ 6995۱۲ ۰. ۳ 10 ۳ . "3 ۳ 2 ۶ ۰ ) ۵ ۲ 2۳۹۵۱ ( TEN ESC Coe Leet Sones

صفحه 20:
token ( * یک جمله برای مفسر این زبان یک عمل است که باید انجام شود و یک پرتاب سس ترا ب- سررت سمرح لو از مس سار خر ترت. سرد در یک زسان ابترا و شوندر * زمانی که مفسر این زبان یک جمله ببیند آن را به قسمت های کوچک تری تبدیلا سس تند كدديه عنوان متال: * $inputline , = , <STDIN>, and ; * هریک از این بخش های کوچکتر دم ی ینار ‎Berl oo oS Resa eros neater ELEY‏ انقشى ندارد: ee

صفحه 21:
‎etre‏ ات ات تس تیه ‎ ‎ ‎ ‏عصه ناه وه اتف مت | وه موز - 000 5 | = توا یولع ‎Eire‏ ‎Subtraction and assianment Multiplication and assignment ‏یه‎ ‏تا و۱23 ‎Operator ‎ ‎ ‎= ۳5۱۲۲۱۵۲۱۵۲ assignment ‎or Exponentiation and 0 ‏اف ساسحا بع ‎assignment ‏عمك جات هد اعم اه‎ ‏ود‎ ۳ ie ‏ار‎ ‎Eee aa ‎ ‎

صفحه 22:
اخمال حسابى بر رزى مشير هل + 5۷۵1۲ - 17 + 5 ۶ ۵۵۲ - 17 + 5 - ‏زر‎ ‎* ٩۷۵171 -< 11 * ٩۷۵۲2 < ٩۷۵۲1 * ‏ز6‎

صفحه 23:
ix) [ #1 /usr/bin/second pl $nane = <STDIN>: chonp(Snane) ; if (name gt 'fred') { print "'$nane' follows 'fred'\n";} elsif (Snane eq 'fred') { print "both nanes are 'fred'\n";} else { ANSI Characters print "'Snane’ precedes 'fred'\n":} second.pl®

صفحه 24:
حملات شرطی (2) خروجی برنامه بازای کلمه ورودی ‎۳٩۵1۳۵1102‏ 1D: \Per15\Test\MPList ings>perl second.pl ۳:۵ 2 ‏ال‎ 22 iD: \Per15\Test\MPList ings >.

صفحه 25:
tn ‏زا‎ م م 11 نز لأكطتاء ه70 :تواست ‎for ($n = 1 ; $n < $max ; $n += 2) {‏ را until ($n >= $max) { 557 +2 ti eas ۱ += $n; +

صفحه 26:
مقايسه ساختار هاى كنترلى 0 00 Tree unless )( { ... } PG? Pi} while () { ... } for (aa;bbycc) {...} 0 ee 185+ اعم OR 5 anything not false is TRUE Perl (btad 0 ‎te‏ ...۰ () 316 ۳ را قا 03 while () { ... } Rae LH ios eee کت ولا ‎rien ey‏ ‎is FALSE‏ 0 != 0 is TRUE the same different كنا the same different different similar similar

صفحه 27:
tn 45) PETE oem rupee recy porns 210 LON its ee ar ome ecans ‏کند آرایه گویند.‎ ۱ ARGV@ ۳ برای سسترد بد یت عضو از آرايه + ااا * برای کار با آرایه می توان توابعی تعریف کرد و با از توبع آماده مثل 501 262 یر تمه 2

صفحه 28:
۱ ‏سس‎ Reeser ‏درنهایت آن ها به شکل‎ ۳۳ 3 ‏رشت‎ 7 eye ie 0 ‏مر‎ cs

صفحه 29:
Hash (2) 15\Test\MPList ings >perl hashex.p1 دض 4 4 2 م 3 2 4 ESSEC Costes

صفحه 30:
اننا ال ل للك ‎open(FILE1, "/u/jqpublic/file1");‏ 3 3 ا 500 :<15آ151لا14 > - هسناة + ار ! 0 < م5 :4 5: 0 0 0 000565 ۰ سد ا وو وه ۰

صفحه 31:
Regular ‏را راز تور ون‎ osb> ((pattern) 8 ۱ ا ۳ 1 60 الگوبی است که مجموعه ای از رشته ها 592 ل ا جد كلاش رشته هايى كه شامل حرف نباشند: [ 27 -23 -4] ‎open OCs‏ اواولا ۰۵1239876۸6۳ - 0" ی وی ۱ تین ( $x = eae ) eae: ee 5 ز"ما3دعلا" ۱3 ae

صفحه 32:
Pattern Matching ee ee ers er ee Cote ‏ل‎ ae ‏ور نا‎ Sets 1510 یر رس سس لس

صفحه 33:
Pattern Matching ‏عملگر های +و [ ] نیز برای کار با رشته ها به صورت زیر عمل می کنند:‎ * 0 ‏ا ا‎ 9 2 « = deeeeecef jae 994 def or dEf. matchet); ole ‏و‎

صفحه 34:
tn ‏تعریف زیر برنامه ها و توابع‎ sub max { 11 ) ‏عزة‎ < 8 ( ae ( ‏هاه‎ ) 87( } $x = 10; $y =11; print &max. "\n"; ro eee Reet pe 410 Seeders ‏از ۷۵111 "برای,اخطار دادن در مواقع لازم در توابع استفاده می شود.‎

صفحه 35:
* کار با ۵1619856 و ارتباط با 010130 * برنامه نويسى شئ كرا

صفحه 36:
ار ااه

صفحه 37:
ar © ‏دصر‎ Pe ravorees @Pmeaa ‏ال©‎ * 0

صفحه 38:
File Edit ۷9۲ Favorites Tools Help © - x) (2) @ P seach Se Favertes ‏داعا الج‎ localhost/cgi-bin/clickmap.cai?292,248 You clicked on Kerman ©2 Local intranet

صفحه 39:
File Edt Search View Tools Macros Configure Window Ogee 8 5 ۵ 1 © 5 4| ‏نه © إن‎ 8 0001 PUBLIC ~77Wac ) ClickMap HTML< http-equiv t-Type cont

صفحه 40:
122517۳ perl print (*Content-Type: text/html\n\n"); print ("<HE&D><TITLE>Clickmap Example Page</TITLE></HEAD\s Brint ("<BODY Nn"); (Sclicked_x, $clicked_y) = eplit(/, /, SENV{QUERY_STRING}); aprint "x=", Sclicked x, "y=", Sclicked_y, "<BRo\n" file for state this /y belongs too open (INFILE, 'narkaz_da got_state while (<INFILE>) { chop: (Sstate_nane, Sxl, Syl, $42, $92) = split(7:7): if( Sclicked_x > $x1 64 Sclicked_= < Sx2 && Sclicked_y > Syl && Sclicked_y < Sy2 ) { Sgot_state = state name: } 1 if (Sgot_state eq '"( {Brit "<H3)ERROR: Please Click on the State Nane.@/Hiown'; } else 4 ¥ print "<HR>"; print "<BR3<A href =\x22/*wizid/clickmap htm1\x22>Back to Map of Tran</A>\n_ print '<H3:You clicked oa <B>", $got_state, "</B></E3)\n"

صفحه 41:
کت ‎Edt Search View Tools Macros Configure‏ عا۴ اج ‎Window Help‏ ‏© ذه ؛ | © ها 3 58 | له 2 از © ؟ 82 5 | 2 ۲ © م مده اهو ثه عي ‏5 :122 : 150 : جح طه ۳ ‎243 ‎Kernan: 276: 240-314: 3s Shiraz :194:318:225:332 ‎

صفحه 42:
تس * “ Mastering ™ Perl ™ 5” by Eric C. Herrmann ,published by Sybex , 1999. الا عام ترط الوط يه عزوق دای 7 ‎Sebesta, Published by Prentice Hall ,2000.‏ ki se cate oh | ” by ‏ال‎ oon 3 ‏الس "سبو‎

صفحه 43:
ازتوجه شما سیاس کم ()

‏Perl مهشید رهنما دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف پاییز 84 1 عناوین بخش ها ‏ بخش اول :معرفی Perl ‏ بخش دوم :آشنایی با برنامه نویسی Perlو واسط درگاه مشترک()CGI 2 معرفی Perl 3 معرفی : کوته نوشتی ازPerl • Practical Extraction and Report Language • ( یاPathologically Eclectic Rubbish Lister )  ساخته شده است که زبان شناس بوده اند نه متخصصLarry Wall توسط آقایPerl !کامپیوتر  . استC کد آن شبیه به کد زبان  4 محاسن Perl ‏ یک زبان ساده و در عین حال کامل ‏ زبانی بین زبان های سطح باال ( ) Pascal, Cو زبان های برنامه نویسی sh, sed ( Shellو )awk 5 ‏sed = Stream Editor ‏awk = Aho, Weinberger, Kernighan محاسن ( ادامه). ‏ نبشته های Shellها ( )shell scriptsمعموًال در فایل های کوچک که به یکدیگر اشاره می کنند نوشته می شوند ولی Perlبه چنین توانایی در قالب یک فایل دست یافته است. ‏ یک زبان گزارشی ()reporting Language ‏ 6 در اوایل Perl، 1990باعث تبدیل سریع بسیاری ازاسناد متنی به فرمت HTMLشد و درگسترش وب نقش مهمی را ایفا کرد. معایبPerl ‏ زبان شلوغی محسوب می شود. ‏ برای پیاده سازی یک عمل مشخص ساختار های گوناگونی را پیشنهاد می کند. ( برای مثال 5راه برای پیاده سازی یک جمله شرطی دارد). ‏ نا خوانا ست. ‏ نمی توان برنامه های نوشته شده به زبان Perlرا به شکل اجرایی امن ( )opaque binaryدر آورد و به همین دلیل نمی توان محصولی تجاری ایجاد کرد که همه جوانب آن برای تولید کننده محفوظ باشد. 7 خصوصیات Perl ‏ Perlمتداول ترین زبان در برنامه نویسی واسط درگاه مشترک( )CGI ‏ در دو قالب عمل می کند: ‏ Perlزبان برنامه نویسی برای صفحات پویای وب ‏ Perlیک زبان نبشته نویسی ()Scripting language ‏ انتخاب بسیاری از برنامه نویسان برای کاربردهای( )Applicationsبا سایز کوچک تا متوسط زبانی بر مبنای مفسر ()interpreted base ‏ 8 ‏System Administration ‏Internet Programming ‏o ‏o دسترسی به Perl ‏ ‏ بر روی چارچوب های مختلف عمل می کند اما منشاء آن از Unix است. هم Perlو هم کد آن مجانی در اختیار همه هست. ‏http://www.perl.com ‏http://www.activestate.com ‏ 9 ‏o ‏o بهترین نسخه برای کار با Perlنسخه Perl 5.8.0است که در July 2002منتشر شد. Perlمتداول ترین زبان برنامه نویسی واسط در گاه مشترک()CGI 10 مقایسه روش واسط درگاه مشترک با دیگر زبان های نبشته نویسی 11 آشنایی با برنامه نویسی در Perl 12 مقدمه ‏ برنامه های به زبان Perlباید با پسوند pl.و برنامه های CGIکه به زبان Perlنوشته می شوند باید با پسوند cgi.ذخیره شوند. ‏ Perlرا در هر ویرایشگر متن از جمله NotePadو یا TextPadمی توان نوشت. 13 نحوه اجرای Perl ‏ نماد تصویری( )Iconفایل های از نوع PL ‏ برای اجرای Perlبعد از نصب آن بر روی دستگاه ،باید در Command windowبه صورت زیر عمل کرد: ‏D:\perl5\test\MPListrings\ perl filename.pl ‏ برای اجرای CGIهای نوشته شده باید آنها را در folderای با نام cgi-bin در سمت کارگزار ذخیره نموده و از طریق آدرس زیر در سمت کاربر اجرا کرد: ‏http://www.servername.com/cgi-bin/filename.cgi 14 اشنایی ابتدایی ‏ توضیحات اضافی در این زبان با نماد #مشخص می شوند مانند خط اول این برنامه .در پایان جمالت نیز نماد ;ضروری است. ‏ STDINیک خط ورودی را نشان می دهد که به شکل استاندارد در این زبان استفاده می شود و شامل هر نوع متغیری که در هنگام ورود ممکن است وارد سازید می باشد. 15 متغیر ها ‏ ‏ در این زبان برای تعریف متغیر احتیاجی به بیان نوع متغیر نیست: ;$foo = 1 ;"$name = "Fred ;$pi = 3.141592 برنامه ای ساده که ورودی را ئریافت کرده و در خروجی چاپ می کنند: 1: #!/usr/local/bin/perl ;>2: $inputline = <STDIN ;) 3: print( $inputline 16 متغیر ها :در زیر تعدادی از صورت های نادرست تعریف متغیر را می بینید          variable # the $ character is missing $ # there must be at least one letter in the name $47x # second character must be a letter $_var # again, the second character must be a letter $variable! # you can't have a ! in a variable name $new.var # you can't have a . in a variable name : هستند یعنی متغیر های زیر با هم متفاوت هستندCase Sensitive متغیر های این زبان $VAR $var $Var   17 متغیر ها            :مثالی از برنامه ای که مایل را به کیلومتر تبدیل می کند  1: #!/usr/local/bin/perl 2: 3: print ("Enter the distance to be converted:\n"); 4: $originaldist = <STDIN>; 5: chop ($originaldist); 6: $miles = $originaldist * 0.6214; 7: $kilometers = $originaldist * 1.609; 8: print ($originaldist, " kilometers = ", $miles, 9: " miles\n"); 10: print ($originaldist, " miles = ", $kilometers, 11: " kilometers\n"); 18 داده ها #!/usr/bin/firstExample.pl print "Hello" . " " . "world\n"; print "hi there " . 2 . " worlds!" ."\n"; print (("5" + 6) . " eggs\n" . " in " . " 3 + 2 = " . ("3" + "2") . " baskets\n" ); 19 جمله و token ‏ یک جمله برای مفسر این زبان یک عمل است که باید انجام شود و یک برنامه می تواند به صورت مجموعه ای از جمله ها در نظر گرفته شود که در یک زمان اجرا می شوند. زمانی که مفسر این زبان یک جمله ببیند آن را به قسمت های کوچک تری تبدیل می کند که به عنوان مثال: ;  $inputline , = , <STDIN> , and ‏ هریک از این بخش های کوچکتر tokenنامیده می شود.این بخش ها با عالمت فاصله خالی مشخص می شوند اما تعداد آنها در این کار نقشی ندارد. ‏ 20 عملگر ها 21 اعمال حسابی بر روی متغیر ها ;$var = 17 + 5 ; $var = 17 + 5 - 3 ; $var1 = 11 ; $var2 = $var1 * 6 ‏ 22 جمالت شرطی 23 جمالت شرطی ( )2 خروجی برنامه بازای کلمه ورودی Rahnama 24 حلقه ها ‏ تعریف حلقه ها در Perlمانند زبان های دیگر شامل انواع مختلفی از قبیل While ، For ، Untilو ....است. { )for ($n = 1 ; $n < $max ; $n += 2 } ;$sum += $n { )until ($n >= $max ;$sum += $n } ;$n += 2 { )while ($n < $max ;$sum += $n } ;$n += 2 25 C وPerl مقایسه ساختار های کنترلی C Perl (braces required) if () { ... } if () { ... } if (! ) { ... } unless () { ... } different } else if () { ... } } elsif () { ... } the same while () { ... } while () { ... } the same for (aa;bb;cc) {...} for (aa;bb;cc) {...} the same foreach $v (@array){... } different break last different continue next similar 0 is FALSE 0, "0", and "" are FALSE similar != 0 is TRUE anything not false is TRUE 26 آرایه ها ‏ ‏ ‏ ‏ 27 یک لیست مجموعه ای از داده های منظم است و یک متغیر که لیست را معرفی می کند آرایه گویند. برای تعریف آرایه و یا دسترسی به کل آن از نماد @ استفاده می شود. @ARGV برای دسترسی به یک عضو از آرایه : ‏ARGV[0]$ برای کار با آرایه می توان توابعی تعریف کرد و یا از توابع آماده مثل sort, reverse, push, popاستفاده کرد. Hash hash را آرایه شرکت پذیر ()Associative array هم می گویند. عناصر hashهر چیزی می توانند باشند ولی درنهایت آن ها به شکل رشته در می آیند. برای معرفی hashو اشاره به کل آن از نماد %استفاده می کنیم. 28 Hash (2) 29 Perl باز کردن فایل در             open (filevar, filename) ; open(FILE1, "/u/jqpublic/file1"); $line = <MYFILE>; 1: #!/usr/local/bin/perl 2: 3: if (open(MYFILE, "file1")) { 4: $line = <MYFILE>; 5: while ($line ne "") { 6: print ($line); 7: $line = <MYFILE>; 8: } 9: } :خواندن از فایل  :مثالی از کاربا فایل ها  30 جمالت منظم(الگو) (Regular expressions ))(pattern ‏ Regular expressionالگویی است که مجموعه ای از رشته ها را تعریف می کند. ساده ترین Patternتنها یک کاراکتر است. کالس رشته هایی که شامل حرف نباشند]A-Za-z^[ : کالس اعداد در مبنای هشت]01234567[ : ;"$x = "01239876AGH ) if ( $x =~ /^0[1-9]{4,}/ } ;"{ print "yes1\n ) if ( $x =~ /[A-Z]{3}$/ } ;"{ print "yes2\n ) if ( $x =~ /^.*[A-Z]{4}$/ } ;"{ print "yes3\n 31 Pattern Matching ‏ ‏Perlعملگر های بسیاری برای کار با رشته ها دارد : ‏ عملگر آزمایش وجود عبارتی خاص در یک رشته) ~= (: ;$result = $var =~ /abc/ ‏ 32 نتیجه این عملگر به صورت درست و نادرست است. ‏ Pattern Matching ‏ عملگر های +و [ ] نیز برای کار با رشته ها به صورت زیر عمل می کنند: ‏ عبارت /de+f/با هر یک از رشته های زیر matcheمی شود: ‏Def ‏deef ‏deeef ‏deeeeeeef ‏ 33 عبارت زیر با def or dEf ، matcheمی شود: /d[eE]f/ ‏ ‏ ‏ ‏ ‏ تعریف زیر برنامه ها و توابع { sub max } if ( $x > $y ) { $x } else { $y } ;$x = 10; $y = 11 ;"print &max . "\n ‏ 34 از تابع dieتعریف شده در زبان Perlبرای خاتمه دادن به توابع و از warnبرای اخطار دادن در مواقع الزم در توابع استفاده می شود. Perlپیشرفته کار با Databaseو ارتباط با ODBC برنامه نویسی شئ گرا 35 مثالی از یک برنامه CGI 36 مثالی از CGI 37 38 39 iran 40 41 منابع        “ Mastering ™ Perl ™ 5 ” by Eric C. Herrmann ,published by Sybex , 1999. “ A Little Book on Perl” by Robert W . Sebesta, Published by Prentice Hall ,2000. “ CGI Programming on the World Wide Web ” by Shishir Gundavaram , 1996. “Perl 5 by Examples” by David Medinets, 2000. www.perl.org www.oreilly.com www.softlookup.com/tutorial/cgi_perl/ch19.asp 42 از توجه شما سپاس گزارم . 43

51,000 تومان