43
1 1 Perl Perl ما ن ه د ر ی ش ه م ما ن ه د ر ی ش ه م ر ت و ی پ م ی کا س د ی ه م کده ش ن دا ر ت و ی پ م ی کا س د ی ه م کده ش ن دا ف ی ر ش ی ت ع ن ص گاه ش ن دا ف ی ر ش ی عت ن ص گاه ش ن دا ر ی. ی ا2 پ ر ی. ی ا2 پ84 84

Perl

  • Upload
    dai

  • View
    75

  • Download
    1

Embed Size (px)

DESCRIPTION

Perl. مهشید رهنما دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف پاییز 84. عناوین بخش ها. بخش اول : معرفی Perl بخش دوم : آشنایی با برنامه نویسی Perl و واسط درگاه مشترک( CGI ). معرفی Perl. معرفی. Perl کوته نوشتی از : P ractical E xtraction and R eport L anguage - PowerPoint PPT Presentation

Citation preview

Page 1: Perl

11

PerlPerl

رهنما رهنما مهشید مهشیدکامپیوتر مهندسی کامپیوتر دانشکده مهندسی دانشکده

شریف صنعتی شریف دانشگاه صنعتی دانشگاه8484پاییز پاییز

Page 2: Perl

22

ها بخش ها عناوین بخش عناوین

: معرفی اول معرفی : بخش اول PerlPerlبخش

: نویسی برنامه با آشنایی دوم نویسی : بخش برنامه با آشنایی دوم و و PerlPerlبخش

( مشترک درگاه )واسط مشترک درگاه ((CGICGIواسط

Page 3: Perl

33

PerlPerlمعرفی معرفی

Page 4: Perl

44

معرفیمعرفیPerlPerl : از نوشتی از :کوته نوشتی کوته

• Practical Extraction and Report Language

• ) Pathologically Eclectic Rubbish Lister یا (

PerlPerl آقای آقای توسط که Larry Wallتوسط است شده ساخته! کامپیوتر متخصص نه اند بوده شناس زبان

زبان کد به شبیه آن زبان کد کد به شبیه آن ..استاست CC کد

Page 5: Perl

55

PerlPerlمحاسن محاسن

کامل حال عین در و ساده زبان کامل یک حال عین در و ساده زبان یک

باال سطح های زبان بین باال زبانی سطح های زبان بین زبان ( ( PascalPascal, , CC))زبانی زبان و ونویسی برنامه نویسی های برنامه ((awkawk ووshsh, , sedsed ) ) ShellShellهای

awk = Aho, Weinberger, Kernighan sed = Stream Editor

Page 6: Perl

66

). ادامه ) .(محاسن ادامه ) محاسن های های نبشته که ((shell scriptsshell scripts ) )ها ها ShellShellنبشته کوچک های فایل در @ که معموال کوچک های فایل در @ معموال

ولی شوند می نوشته کنند می اشاره یکدیگر ولی به شوند می نوشته کنند می اشاره یکدیگر چنین چنین به به PerlPerlبه. است یافته دست فایل یک قالب در .توانایی است یافته دست فایل یک قالب در توانایی

گزارشی زبان گزارشی یک زبان ((reporting Languagereporting Language))یک

اوایل اوایل در به PerlPerl،، 19901990 در متنی ازاسناد بسیاری سریع تبدیل به باعث متنی ازاسناد بسیاری سریع تبدیل باعث

.HTMLHTMLفرمت فرمت کرد ایفا را مهمی نقش وب درگسترش و .شد کرد ایفا را مهمی نقش وب درگسترش و شد

Page 7: Perl

77

PerlPerlمعایبمعایب شود می محسوب شلوغی شود زبان می محسوب شلوغی ..زبان

را گوناگونی های ساختار مشخص عمل یک سازی پیاده را برای گوناگونی های ساختار مشخص عمل یک سازی پیاده برای (. مثال برای کند می .) پیشنهاد مثال برای کند می جمله 55پیشنهاد یک سازی پیاده برای جمله راه یک سازی پیاده برای راه

). دارد .(شرطی دارد شرطی

. ست خوانا .نا ست خوانا نا

زبان به شده نوشته های برنامه توان زبان نمی به شده نوشته های برنامه توان شکل PerlPerlنمی به شکل را به راتوان( opaque binaryopaque binary)) امنامن اجراییاجرایی نمی دلیل همین به و آورد توان( در نمی دلیل همین به و آورد در

کننده تولید برای آن جوانب همه که کرد ایجاد تجاری کننده محصولی تولید برای آن جوانب همه که کرد ایجاد تجاری محصولی . باشد . محفوظ باشد محفوظ

Page 8: Perl

88

PerlPerlخصوصیات خصوصیات PerlPerl در زبان ترین در متداول زبان ترین نویسی متداول نویسی برنامه ) برنامه مشترک درگاه ) واسط مشترک درگاه واسط

CGICGI))

کند می عمل قالب دو کند در می عمل قالب دو ::درo System AdministrationSystem Administrationo Internet ProgrammingInternet Programming

PerlPerl وب پویای صفحات برای نویسی برنامه وب زبان پویای صفحات برای نویسی برنامه زبان

PerlPerl( نویسی نبشته زبان نویسی )یک نبشته زبان ((Scripting languageScripting languageیک

برای نویسان برنامه از بسیاری برای انتخاب نویسان برنامه از بسیاری انتخابمتوسط ( ( ApplicationsApplications))کاربردهایکاربردهای تا کوچک سایز متوسط با تا کوچک سایز با

مفسر مبنای بر مفسر زبانی مبنای بر ((interpreted baseinterpreted base))زبانی

Page 9: Perl

99

به به دسترسی PerlPerlدسترسی

اما کند می عمل مختلف های چارچوب روی اما بر کند می عمل مختلف های چارچوب روی براز آن از منشاء آن . UnixUnixمنشاء .است است

هم همPerlPerl. هست همه اختیار در مجانی آن کد هم .و هست همه اختیار در مجانی آن کد هم و

o http://www.perl.comhttp://www.perl.como http://www.activestate.comhttp://www.activestate.com

با کار برای نسخه با بهترین کار برای نسخه است است Perl 5.8.0Perl 5.8.0نسخه نسخه PerlPerlبهتریندر در که .July 2002July 2002که شد .منتشر شد منتشر

Page 10: Perl

1010

PerlPerl برنامه زبان ترین برنامه متداول زبان ترین متداولگاه در واسط گاه نویسی در واسط نویسی

((CGICGI))مشترکمشترک

Page 11: Perl

1111

مشترک درگاه واسط روش مشترک مقایسه درگاه واسط روش مقایسهنویسی نبشته های زبان دیگر نویسی با نبشته های زبان دیگر با

Page 12: Perl

1212

در نویسی برنامه با در آشنایی نویسی برنامه با آشناییPerlPerl

Page 13: Perl

1313

مقدمهمقدمه زبان به های زبان برنامه به های پسوند PerlPerl برنامه با پسوند باید با های plpl..باید برنامه های و برنامه و

CGICGI زبان به زبان که به با PerlPerlکه باید شوند می با نوشته باید شوند می نوشته.cgicgi..پسوند پسوند شوند .ذخیره شوند ذخیره

PerlPerl جمله از متن ویرایشگر هر در جمله را از متن ویرایشگر هر در یا NotePadNotePadرا یا و وTextPadTextPad. نوشت توان .می نوشت توان می

Page 14: Perl

1414

اجرای اجرای نحوه PerlPerlنحوه( تصویری )نماد تصویری نوع ((IconIconنماد از های نوع فایل از های PLPLفایل

اجرای اجرای برای در PerlPerlبرای باید ، دستگاه روی بر آن نصب از در بعد باید ، دستگاه روی بر آن نصب از Command Commandبعدwindowwindow: کرد عمل زیر صورت :به کرد عمل زیر صورت به

D:\perl5\test\MPListrings\ perl filename.plD:\perl5\test\MPListrings\ perl filename.pl

اجرای اجرای برای در CGICGIبرای را آنها باید شده نوشته در های را آنها باید شده نوشته نام folderfolderهای با نام ای با -cgi-cgiایbinbin سمت در زیر آدرس طریق از و نموده ذخیره کارگزار سمت سمت در در زیر آدرس طریق از و نموده ذخیره کارگزار سمت در

: کرد اجرا : کاربر کرد اجرا کاربرhttp://www.servername.com/cgi-bin/filename.cgihttp://www.servername.com/cgi-bin/filename.cgi

Page 15: Perl

1515

ابتدایی ابتدایی اشنایی اشنایی

# می مشخص نماد با زبان این در اضافی می # توضیحات مشخص نماد با زبان این در اضافی توضیحات . نیز جمالت پایان در برنامه این اول خط مانند . شوند نیز جمالت پایان در برنامه این اول خط مانند شوند

. ; ;نماد نماد است .ضروری است ضروری

STDINSTDIN شکل به که دهد می نشان را ورودی خط شکل یک به که دهد می نشان را ورودی خط یکهر شامل و شود می استفاده زبان این در هر استاندارد شامل و شود می استفاده زبان این در استاندارد

سازید وارد است ممکن ورود هنگام در که متغیری سازید نوع وارد است ممکن ورود هنگام در که متغیری نوع. باشد .می باشد می

Page 16: Perl

1616

ها ها متغیر متغیر : نیست متغیر نوع بیان به احتیاجی متغیر تعریف برای زبان این : در نیست متغیر نوع بیان به احتیاجی متغیر تعریف برای زبان این در

$$foo foo = = 1;1;

$name $name = "= "FredFred"";;

$pi $pi = = 3.1415923.141592; ; می چاپ خروجی در و کرده ئریافت را ورودی که ساده ای می برنامه چاپ خروجی در و کرده ئریافت را ورودی که ساده ای برنامه

کنند:کنند:

11: : ##!/!/usrusr//locallocal//binbin//perlperl

22: : $inputline $inputline = = <STDIN>;<STDIN>;

33: : printprint) ) $inputline $inputline ((; ;

Page 17: Perl

1717

ها ها متغیر متغیر

را متغیر تعریف نادرست های صورت از تعدادی زیر را در متغیر تعریف نادرست های صورت از تعدادی زیر در: بینید :می بینید می

variable # the $ character is missing variable # the $ character is missing $ # there must be at least one letter in the name $ # there must be at least one letter in the name $47x # second character must be a letter $47x # second character must be a letter $_var # again, the 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 $variable! # you can't have a ! in a variable name $new.var # you can't have a . in a variable name $new.var # you can't have a . in a variable name

زبان این های زبان متغیر این های متفاوت Case SensitiveCase Sensitiveمتغیر هم با زیر های متغیر یعنی متفاوت هستند هم با زیر های متغیر یعنی هستندهستند:هستند:

$VAR$VAR $var$var

$Var$Var

Page 18: Perl

1818

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

1: #!/usr/local/bin/perl 1: #!/usr/local/bin/perl 2: 2: 3: print )"Enter the distance to be converted:\n"(;3: print )"Enter the distance to be converted:\n"(; 4: $originaldist = <STDIN>; 4: $originaldist = <STDIN>; 5: chop )$originaldist(; 5: chop )$originaldist(; 6: $miles = $originaldist * 0.6214;6: $miles = $originaldist * 0.6214; 7: $kilometers = $originaldist * 1.609;7: $kilometers = $originaldist * 1.609; 8: print )$originaldist, " kilometers = ", $miles, 9:8: print )$originaldist, " kilometers = ", $miles, 9: " miles\n"(; " miles\n"(; 10: print )$originaldist, " miles = ", $kilometers,10: print )$originaldist, " miles = ", $kilometers, 11: " kilometers\n"(; 11: " kilometers\n"(;

Page 19: Perl

1919

ها ها داده داده

#!/usr/bin/firstExample.pl#!/usr/bin/firstExample.plprint "Hello" . " " . "world\n";print "Hello" . " " . "world\n";print "hi there " . 2 . " worlds!" ."\n";print "hi there " . 2 . " worlds!" ."\n";print (("5" + 6) . " eggs\n" . " in " . " 3 print (("5" + 6) . " eggs\n" . " in " . " 3 + 2 = " . ("3" + "2") . " baskets\n" );+ 2 = " . ("3" + "2") . " baskets\n" );

Page 20: Perl

2020

و و جمله tokentokenجمله

باید که است عمل یک زبان این مفسر برای جمله باید یک که است عمل یک زبان این مفسر برای جمله یکای مجموعه صورت به تواند می برنامه یک و شود ای انجام مجموعه صورت به تواند می برنامه یک و شود انجاممی اجرا زمان یک در که شود گرفته نظر در ها جمله می از اجرا زمان یک در که شود گرفته نظر در ها جمله از

شوند.شوند. قسمت به را آن ببیند جمله یک زبان این مفسر که قسمت زمانی به را آن ببیند جمله یک زبان این مفسر که زمانی

: مثال عنوان به که کند می تبدیل تری کوچک :های مثال عنوان به که کند می تبدیل تری کوچک های $inputline , = , <STDIN> , and ; $inputline , = , <STDIN> , and ;

کوچکتر های بخش این از کوچکتر هریک های بخش این از می tokentoken هریک می نامیده نامیدهمی. مشخص خالی فاصله عالمت با ها بخش این می. شود مشخص خالی فاصله عالمت با ها بخش این شود

. ندارد نقشی کار این در آنها تعداد اما .شوند ندارد نقشی کار این در آنها تعداد اما شوند

Page 21: Perl

2121

ها ها عملگر عملگر

Page 22: Perl

2222

متغیر روی بر حسابی متغیر اعمال روی بر حسابی اعمالهاها

$var $var = = 1717 + + 5; 5; $var $var = = 1717 + + 55 - - 3; 3; $var1$var1 = = 11; 11; $var2$var2 = = $var1$var1 * * 6; 6;

Page 23: Perl

2323

شرطی شرطی جمالت جمالت

Page 24: Perl

2424

شرطی ) شرطی )جمالت ((22جمالت

ورودی کلمه بازای برنامه ورودی خروجی کلمه بازای برنامه RahnamaRahnamaخروجی

Page 25: Perl

2525

ها ها حلقه حلقه در ها حلقه در تعریف ها حلقه انواع PerlPerlتعریف شامل دیگر های زبان انواع مانند شامل دیگر های زبان مانند

قبیل از قبیل مختلفی از ، ، WhileWhile ،، ForForمختلفی UntilUntil. .... است .و .... است وforfor ($n = 1 ; $n < $max ; $n += 2) { ($n = 1 ; $n < $max ; $n += 2) { $sum += $n; }$sum += $n; }

untiluntil ($n >= $max) { ($n >= $max) { $sum += $n;$sum += $n; $n += 2; }$n += 2; }

whilewhile ($n < $max) { ($n < $max) { $sum += $n;$sum += $n; $n += 2; }$n += 2; }

Page 26: Perl

2626

کنترلی های ساختار کنترلی مقایسه های ساختار PerlPerlمقایسهCCو و

C C Perl )braces required( Perl )braces required(

the same the same if () { ... } if () { ... } if () { ... } if () { ... }

if (! ) { ... } if (! ) { ... } unless () { ... } unless () { ... }

differentdifferent} else if () { ... } } else if () { ... } } elsif () { ... }} elsif () { ... }

the samethe samewhile () { ... } while () { ... } while () { ... } while () { ... }

the same the same for (aa;bb;cc) {...} for (aa;bb;cc) {...} for (aa;bb;cc) {...}for (aa;bb;cc) {...}

foreach $v (@array){... } foreach $v (@array){... }

differentdifferentbreakbreaklastlast

differentdifferentcontinuecontinuenextnext

similarsimilar0 is 0 is FALSEFALSE 0, "0", and "" are 0, "0", and "" are FALSEFALSE

similarsimilar!= 0 is != 0 is TRUETRUE anything not false is anything not false is TRUETRUE

Page 27: Perl

2727

ها ها آرایه آرایه یک لیست مجموعه ای از داده های منظم است و یک متغیر یک لیست مجموعه ای از داده های منظم است و یک متغیر

که لیست را معرفی می کند آرایه گویند.که لیست را معرفی می کند آرایه گویند. برای تعریف آرایه و یا دسترسی به کل آن از نماد @ استفاده برای تعریف آرایه و یا دسترسی به کل آن از نماد @ استفاده

ARGVARGV@@می شود. می شود. : برای دسترسی به یک عضو از آرایه : برای دسترسی به یک عضو از آرایه

$$ARGV[0]ARGV[0] برای کار با آرایه می توان توابعی تعریف کرد و یا از برای کار با آرایه می توان توابعی تعریف کرد و یا از

استفاده کرد. استفاده کرد. sort, reverse, push, popsort, reverse, push, popتوابع آماده مثل توابع آماده مثل

Page 28: Perl

2828

Hash Hash hashhash را را

پذیر شرکت پذیر آرایه شرکت آرایه((Associative arrayAssociative array)). همهم گویند .می گویند می

عناصر عناصرhashhash هر هرولی باشند توانند می ولی چیزی باشند توانند می چیزی

شکل به ها آن شکل درنهایت به ها آن درنهایت. رشته رشته آیند می .در آیند می در

معرفی معرفی برای و و hashhashبراینماد از آن کل به نماد اشاره از آن کل به اشاره

. کنیم % می .استفاده کنیم % می استفاده

Page 29: Perl

2929

Hash Hash )2()2(

Page 30: Perl

3030

در فایل کردن در باز فایل کردن PerlPerlباز open open ))filevar, filename(filevar, filename( ; ; openopen))FILE1, FILE1, "/"/uu//jqpublicjqpublic//file1file1"("(; ;

: فایل از :خواندن فایل از خواندن $line $line = = <MYFILE>; <MYFILE>;

: ها فایل کاربا از :مثالی ها فایل کاربا از مثالی 1: #!/usr/local/bin/perl1: #!/usr/local/bin/perl 2: 2: 3: if )open)MYFILE, "file1"(( { 3: if )open)MYFILE, "file1"(( { 4: $line = <MYFILE>;4: $line = <MYFILE>; 5: while )$line ne ""( { 5: while )$line ne ""( { 6: print )$line(; 6: print )$line(; 7: $line = <MYFILE>;7: $line = <MYFILE>; 8: } 8: } 9: } 9: }

Page 31: Perl

3131

( ) ( الگو منظم ( )جمالت ( الگو منظم Regular expressions Regular expressionsجمالت)pattern()pattern())

Regular expressionRegular expression از ای مجموعه که است از الگویی ای مجموعه که است الگویی. کند می تعریف را ها .رشته کند می تعریف را ها رشته

ترین ترین ساده . PatternPatternساده است کاراکتر یک . تنها است کاراکتر یک تنها: نباشند حرف شامل که هایی رشته :کالس نباشند حرف شامل که هایی رشته [[A-Za-zA-Za-z]^]^ کالس

: هشت مبنای در اعداد : کالس هشت مبنای در اعداد [ [ 0123456701234567]]کالس

$x = "01239876AGH";$x = "01239876AGH";

if ( $x =~ /^0[1-9]{4,}/ )if ( $x =~ /^0[1-9]{4,}/ ){ print "yes1\n"; }{ print "yes1\n"; }

if ( $x =~ /[A-Z]{3}$/ )if ( $x =~ /[A-Z]{3}$/ ){ print "yes2\n"; }{ print "yes2\n"; }

if ( $x =~ /^.*[A-Z]{4}$/ )if ( $x =~ /^.*[A-Z]{4}$/ ){ print "yes3\n"; }{ print "yes3\n"; }

Page 32: Perl

3232

Pattern MatchingPattern Matching

PerlPerl: دارد ها رشته با کار برای بسیاری های دارد :عملگر ها رشته با کار برای بسیاری های عملگر

(: رشته یک در خاص عبارتی وجود آزمایش :) عملگر رشته یک در خاص عبارتی وجود آزمایش ( (=~=~عملگر

$result = $var =~ /abc/;$result = $var =~ /abc/;

. است نادرست و درست صورت به عملگر این .نتیجه است نادرست و درست صورت به عملگر این نتیجه

Page 33: Perl

3333

Pattern MatchingPattern Matching + و های و + عملگر های زیر [ ][ ]عملگر صورت به ها رشته با کار برای زیر نیز صورت به ها رشته با کار برای نیز

: کنند می :عمل کنند می عمل

عبارت عبارت//de+fde+f / / زیر های رشته از یک هر زیر با های رشته از یک هر :matchematcheبا شود :می شود می

DefDef deefdeef deeef deeef deeeeeeefdeeeeeeef

با زیر با عبارت زیر ، ، def or dEf def or dEfعبارت matchematche: شود :می شود می /d]eE[f//d]eE[f/

Page 34: Perl

3434

توابع و ها برنامه زیر توابع تعریف و ها برنامه زیر تعریف

sub max {

if ) $x > $y ( { $x } else { $y }

}

$x = 10; $y = 11;

print &max . "\n";

تابع زبان die از در شده دادن Perlتعریف خاتمه برایاز و توابع در warnبه الزم مواقع در دادن اخطار برای

. شود می استفاده توابع

Page 35: Perl

3535

PerlPerl پیشرفتهپیشرفته

با با کار با DatabaseDatabaseکار ارتباط با و ارتباط ODBCODBCو

گرا شئ نویسی گرا برنامه شئ نویسی برنامه

Page 36: Perl

3636

برنامه یک از برنامه مثالی یک از CGICGIمثالی

Page 37: Perl

3737

از از مثالی CGICGIمثالی

Page 38: Perl

3838

Page 39: Perl

3939

Page 40: Perl

4040iran

Page 41: Perl

4141

Page 42: Perl

4242

منابعمنابع “ “ Mastering ™ Perl ™ 5 ” by Eric C. Mastering ™ Perl ™ 5 ” by Eric C.

Herrmann ,published by Sybex , 1999.Herrmann ,published by Sybex , 1999. “ “ A Little Book on Perl” by Robert W . Sebesta, A Little Book on Perl” by Robert W . Sebesta,

Published by Prentice Hall ,2000.Published by Prentice Hall ,2000. “ “ CGI Programming on the World Wide Web ” by CGI Programming on the World Wide Web ” by

Shishir Gundavaram , 1996.Shishir Gundavaram , 1996. ““Perl 5 by Examples” by David Medinets, 2000. Perl 5 by Examples” by David Medinets, 2000. www.perl.orgwww.perl.org www.oreilly.comwww.oreilly.com www.softlookup.com/tutorial/cgi_perl/ch19.aspwww.softlookup.com/tutorial/cgi_perl/ch19.asp

Page 43: Perl

4343

. گزارم سپاس شما توجه .از گزارم سپاس شما توجه از