440 likes | 729 Views
Perl. مهشید رهنما دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف پاییز 84. عناوین بخش ها. بخش اول : معرفی Perl بخش دوم : آشنایی با برنامه نویسی Perl و واسط درگاه مشترک( CGI ). معرفی Perl. معرفی. Perl کوته نوشتی از : P ractical E xtraction and R eport L anguage
E N D
Perl مهشید رهنما دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف پاییز 84
عناوین بخش ها • بخش اول : معرفی Perl • بخش دوم : آشنایی با برنامه نویسی Perl و واسط درگاه مشترک(CGI)
معرفی • Perl کوته نوشتی از : • Practical Extraction and Report Language • ( یاPathologically Eclectic Rubbish Lister) • Perl توسط آقای Larry Wall ساخته شده است که زبان شناس بوده اند نه متخصص کامپیوتر! • کد آن شبیه به کد زبان C است.
محاسن Perl • یک زبان ساده و در عین حال کامل • زبانی بین زبان های سطح بالا (Pascal, C ) و زبان های برنامه نویسی Shell ( sh, sedوawk) • awk = Aho, Weinberger, Kernighan sed = Stream Editor
محاسن ( ادامه.) • نبشته های Shellها (shell scripts)معمولاً در فایل های کوچک که به یکدیگر اشاره می کنند نوشته می شوند ولی Perl به چنین توانایی در قالب یک فایل دست یافته است. • یک زبان گزارشی (reporting Language) • در اوایل 1990،Perl باعث تبدیل سریع بسیاری ازاسناد متنی به فرمت HTML شد و درگسترش وب نقش مهمی را ایفا کرد.
Perlمعایب • زبان شلوغی محسوب می شود. • برای پیاده سازی یک عمل مشخص ساختار های گوناگونی را پیشنهاد می کند.( برای مثال 5 راه برای پیاده سازی یک جمله شرطی دارد.) • نا خوانا ست. • نمی توان برنامه های نوشته شده به زبان Perl را به شکل اجراییامن(opaque binary) در آورد و به همین دلیل نمی توان محصولی تجاری ایجاد کرد که همه جوانب آن برای تولید کننده محفوظ باشد.
خصوصیات Perl • Perl متداول ترین زبان در برنامه نویسیواسط درگاه مشترک( CGI) • در دو قالب عمل می کند: • System Administration • Internet Programming • Perl زبان برنامه نویسی برای صفحات پویای وب • Perl یک زبان نبشته نویسی (Scripting language) • انتخاب بسیاری از برنامه نویسان برایکاربردهای(Applications) با سایز کوچک تا متوسط • زبانی بر مبنای مفسر (interpreted base)
دسترسی به Perl • بر روی چارچوب های مختلف عمل می کند اما منشاء آن از Unix است. • هم Perl و هم کد آن مجانی در اختیار همه هست. • http://www.perl.com • http://www.activestate.com • بهترین نسخه برای کار با Perl نسخه Perl 5.8.0 است که در July 2002 منتشر شد.
Perl متداول ترین زبان برنامه نویسی واسط در گاه مشترک(CGI)
مقایسه روش واسط درگاه مشترک با دیگر زبان های نبشته نویسی
مقدمه • برنامه های به زبان Perl باید با پسوند .pl و برنامه های CGI که به زبان Perl نوشته می شوند باید با پسوند .cgi ذخیره شوند. • Perl را در هر ویرایشگر متن از جمله NotePad و یا TextPad می توان نوشت.
نحوه اجرای 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
اشنایی ابتدایی • توضیحات اضافی در این زبان با نماد # مشخص می شوند مانند خط اول این برنامه.در پایان جملات نیز نماد ;ضروری است. • STDIN یک خط ورودی را نشان می دهد که به شکل استاندارد در این زبان استفاده می شود و شامل هر نوع متغیری که در هنگام ورود ممکن است وارد سازید می باشد.
متغیر ها • در این زبان برای تعریف متغیر احتیاجی به بیان نوع متغیر نیست: $foo = 1; $name = "Fred"; $pi = 3.141592; • برنامه ای ساده که ورودی را ئریافت کرده و در خروجی چاپ می کنند: 1: #!/usr/local/bin/perl 2: $inputline = <STDIN>; 3: print( $inputline );
متغیر ها • در زیر تعدادی از صورت های نادرست تعریف متغیر را می بینید: • 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
متغیر ها • مثالی از برنامه ای که مایل را به کیلومتر تبدیل می کند: • 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");
داده ها #!/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" );
جمله و token • یک جمله برای مفسر این زبان یک عمل است که باید انجام شود و یک برنامه می تواند به صورت مجموعه ای از جمله ها در نظر گرفته شود که در یک زمان اجرا می شوند. • زمانی که مفسر این زبان یک جمله ببیند آن را به قسمت های کوچک تری تبدیل می کند که به عنوان مثال: • $inputline , = , <STDIN> , and ; • هریک از این بخش های کوچکتر tokenنامیده می شود.این بخش ها با علامت فاصله خالی مشخص می شوند اما تعداد آنها در این کار نقشی ندارد.
اعمال حسابی بر روی متغیر ها • $var = 17 + 5; • $var = 17 + 5 - 3; • $var1 = 11; • $var2 = $var1 * 6;
جملات شرطی (2) خروجی برنامه بازای کلمه ورودی Rahnama
حلقه ها • تعریف حلقه ها در 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; }
آرایه ها • یک لیست مجموعه ای از داده های منظم است و یک متغیر که لیست را معرفی می کند آرایه گویند. • برای تعریف آرایه و یا دسترسی به کل آن از نماد @ استفاده می شود. @ARGV • برای دسترسی به یک عضو از آرایه : $ARGV[0] • برای کار با آرایه می توان توابعی تعریف کرد و یا از توابع آماده مثل sort, reverse, push, popاستفاده کرد.
Hash • hash را آرایه شرکت پذیر (Associative array) هممی گویند. • عناصر hash هر چیزی می توانند باشند ولی درنهایت آن ها به شکل رشتهدر می آیند. • برای معرفی hash و اشاره به کل آن از نماد % استفاده می کنیم.
باز کردن فایل در 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: }
جملات منظم(الگو) (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"; }
Pattern Matching • Perlعملگر های بسیاری برای کار با رشته ها دارد : • عملگر آزمایش وجود عبارتی خاص در یک رشته:( =~ ) • $result = $var =~ /abc/; • نتیجه این عملگر به صورت درست و نادرست است.
Pattern Matching • عملگر های + و [ ] نیز برای کار با رشته ها به صورت زیر عمل می کنند: • عبارت /de+f/ با هر یک از رشته های زیر matche می شود: • Def • deef • deeef • deeeeeeef • عبارت زیر با def or dEf ، matche می شود: • /d[eE]f/
تعریف زیر برنامه ها و توابع sub max { if ( $x > $y ) { $x } else { $y } } $x = 10; $y = 11; print &max . "\n"; • از تابع dieتعریف شده در زبان Perl برای خاتمه دادن به توابع و از warn برای اخطار دادن در مواقع لازم در توابع استفاده می شود.
Perl پیشرفته • کار با Database و ارتباط با ODBC • برنامه نویسی شئ گرا
منابع • “ 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