با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که علاقمندان به دوره آموزشی پرل Perl. در جلسه گذشته آموزش کار با انواع متغیر ها در پرل به علاقمندان این دوره ارائه شد. به طور کل در پرل سه نوع متغیر معرفی می شود: متغیر اسکالر که با علامت دلار ($) می آید و می تواند اعداد، رشته ها یا مراجع و منابع را ذخیره کند. متغیر Arrays که قبل از علامت @ می آید و لیست های مرتب شده اسکالر ها را ذخیره می کند. متغیر Hash که قبل از علامت ٪ می آید و برای ذخیره مجموعه ای از جفت های key/value استفاده می شود. در این جلسه و در ادامه دوره آموزشی پرل آموزش کار با اسکالر ها در پرل را ارائه می کنیم.
همان طور که در جلسات قبل هم اشاره شد یک اسکالر یک واحد مستقل از داده است.
این داده ممکن است یک عدد صحیح، یک floating point، یک کاراکتر، یک رشته، یک پاراگراف و یا یک صفحه کامل وب باشد.
در زیر می توانید یک مثال ساده از استفاده از متغیرهای اسکالر را ببینید.
1 2 3 4 5 6 7 8 9 | #!/usr/bin/perl $age = 25; # An integer assignment $name = "John Paul"; # A string $salary = 1445.50; # A floating point print "Age = $age\n"; print "Name = $name\n"; print "Salary = $salary\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 | Age = 25 Name = John Paul Salary = 1445.5 |
اسکالر ها غالباً یا عدد هستند و رشته.
مثال زیر استفاده از اسکالر عددی را نشان می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/usr/bin/perl $integer = 200; $negative = -300; $floating = 200.340; $bigfloat = -1.2E-23; # 377 octal, same as 255 decimal $octal = 0377; # FF hex, also 255 decimal $hexa = 0xff; print "integer = $integer\n"; print "negative = $negative\n"; print "floating = $floating\n"; print "bigfloat = $bigfloat\n"; print "octal = $octal\n"; print "hexa = $hexa\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 4 5 6 | integer = 200 negative = -300 floating = 200.34 bigfloat = -1.2e-23 octal = 255 hexa = 255 |
مثال زیر استفاده از اسکالر رشته ای را نشان می دهد.
به تفاوت بین اسکالر رشته ای نقل قولی تکی و اسکالر نقل قولی رشته ای دوگانه توجه نمایید.
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/perl $var = "This is string scalar!"; $quote = 'I m inside single quote - $var'; $double = "This is inside single quote - $var"; $escape = "This example of escape -\tHello, World!"; print "var = $var\n"; print "quote = $quote\n"; print "double = $double\n"; print "escape = $escape\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 4 | var = This is string scalar! quote = I m inside single quote - $var double = This is inside single quote - This is string scalar! escape = This example of escape - Hello, World |
در جلسات بعدی با تفضیل با اپراتورهای مختلف پرل آشنا خواهید شد.
در اینجا به منظور آشنایی مقدماتی با آن ها، تنها چند عملیات عددی و رشته ای را فهرست کرده ایم.
1 2 3 4 5 6 7 8 9 10 11 | #!/usr/bin/perl $str = "hello" . "world"; # Concatenates strings. $num = 5 + 10; # adds two numbers. $mul = 4 * 5; # multiplies two numbers. $mix = $str . $num; # concatenates string and number. print "str = $str\n"; print "num = $num\n"; print "mul = $mul\n"; print "mix = $mix\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 4 | str = helloworld num = 15 mul = 20 mix = helloworld15 |
اگر قصد استفاده از رشته های چند خطی در برنامه تان را دارید از نقل قول های استاندارد به صورت زیر استفاده نمایید.
1 2 3 4 5 6 7 | #!/usr/bin/perl $string = 'This is a multiline string'; print "$string\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 | This is a multiline string |
می توان به صورت زیر از سینتکس “here” document برای ذخیره یا پرینت multilines ها یا چند خطی ها استفاده نمایید.
1 2 3 4 5 6 7 | #!/usr/bin/perl print <<EOF; This is a multiline string EOF |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 | This is a multiline string |
فرم v1.20.300.4000 به عنوان یک رشته متشکل از کاراکترهایی با ordinals مشخص شده تجزیه می شود.
این فرم به عنوان v-strings شناخته شده است.
یک رشته v تناوب خواناتری برای ساختن رشته ها در مقایسه با فرم های ناخوانایی مثل “\x{1}\x{14}\x{12c}\x{fa0}” فراهم می آورد.
این رشته ها شامل هر حرفی می شود که با v شروع شده و با یک یا چند عنصر جدا شده از نقطه دنبال می شود.
به عنوان مثال:
1 2 3 4 5 6 7 8 9 | #!/usr/bin/perl $smile = v9786; $foo = v102.111.111; $martin = v77.97.114.116.105.110; print "smile = $smile\n"; print "foo = $foo\n"; print "martin = $martin\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 4 | smile = ☺ foo = foo martin = Martin Wide character in print at main.pl line 7. |
تا این زمان حتماً با اسکالرهای رشته ای و نحوه ایجاد هماهنگی و انعطاف بین آن ها آشنایی پیدا کرده اید.
اکنون وقت آن است که به معرفی سه حرف خاص بپردازیم؛ __FILE__, __LINE__, و __PACKAGE__ این سه حرف نام فایل فعلی، شماره خط و پکیج را در نقطه مورد نظر در برنامه تان را تعیین می کند.
این سه حرف خاص می توانند به عنوان نشانه های جداگانه استفاده شوند و لازم به تعبیه آن ها به رشته ها نیست.
مثال زیر را بررسی کنید.
1 2 3 4 5 6 7 8 | #!/usr/bin/perl print "File name ". __FILE__ . "\n"; print "Line Number " . __LINE__ ."\n"; print "Package " . __PACKAGE__ ."\n"; # they can not be interpolated print "__FILE__ __LINE__ __PACKAGE__\n"; |
این دستور نتیجه ای به شکل زیر خواهد داشت.
1 2 3 4 | File name hello.pl Line Number 4 Package main __FILE__ __LINE__ __PACKAGE__ |
در این جلسه آموزش کار با اسکالر ها در پرل را بررسی نمودیم.
در جلسه بعدی به صورت مفصل به کار با Array ها در پرل می پردازیم.
با پی وی لرن همراه باشید.