انگلیسیفرانسویاسپانیایی

فاویکون OnWorks

perlintro - آنلاین در ابر

اجرای perlintro در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور perlintro است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


perlintro -- معرفی و بررسی اجمالی Perl

شرح


این سند برای ارائه یک نمای کلی از زبان برنامه نویسی Perl در نظر گرفته شده است.
همراه با اشاره به مستندات بیشتر این به عنوان راهنمای "بوت استرپ" در نظر گرفته شده است
کسانی که تازه با این زبان آشنا هستند و اطلاعات کافی برای شما فراهم می کند تا بتوانید
پرل دیگران را بخوانید و تقریباً بفهمید که چه می کند، یا خودتان بنویسید
اسکریپت های ساده

هدف این سند مقدماتی کامل نیست. حتی هدفش این نیست که باشد
کاملا دقیق در برخی موارد کمال فدای هدف به دست آوردن شده است
ایده کلی در سراسر شما هستید به شدت توصیه می شود این مقدمه را با موارد بیشتری دنبال کنید
اطلاعات کتابچه راهنمای کامل پرل، فهرست مطالبی که در آن موجود است
perltoc.

در سرتاسر این سند، ارجاعاتی به بخش‌های دیگر اسناد پرل را مشاهده خواهید کرد.
شما می توانید آن اسناد را با استفاده از دستور "perldoc" یا هر روشی که هستید بخوانید
برای خواندن این سند استفاده کنید.

در سرتاسر مستندات پرل، نمونه‌های متعددی را خواهید یافت که به توضیح آن کمک می‌کنند
ویژگی های مورد بحث لطفاً به خاطر داشته باشید که بسیاری از آنها بیشتر قطعه کد هستند
از برنامه های کامل

این نمونه‌ها اغلب بازتاب سبک و ترجیح نویسنده آن قطعه است
مستندات، و ممکن است مختصرتر از یک خط کد مربوطه در یک برنامه واقعی باشد.
به جز مواردی که غیر از این ذکر شده است، باید فرض کنید که "استفاده از هشدارهای سخت" و "استفاده از هشدارها"
عبارات زودتر در "برنامه" ظاهر می شوند و هر متغیری که استفاده می شود قبلاً وجود داشته است
اعلام کرد، حتی اگر برای سهولت خواندن مثال، آن اعلانات حذف شده باشند.

توجه داشته باشید که نمونه ها توسط بسیاری از نویسندگان مختلف در طول یک دوره نوشته شده است
چندین دهه. بنابراین، سبک‌ها و تکنیک‌ها متفاوت خواهند بود، هرچند تلاش‌هایی انجام شده است
به گونه ای ساخته شده است که در همان بخش ها، سبک ها خیلی زیاد تغییر نکند. یک سبک را در نظر نگیرید
بهتر از دیگران بودن - "بیش از یک راه برای انجام آن وجود دارد" یکی از شعارهای پرل است.
به هر حال، در سفر خود به عنوان یک برنامه نویس، احتمالاً با سبک های مختلفی روبرو خواهید شد.

چی is پرل؟
Perl یک زبان برنامه نویسی همه منظوره است که در اصل برای دستکاری متن توسعه یافته است
و اکنون برای طیف وسیعی از وظایف از جمله مدیریت سیستم، توسعه وب،
برنامه نویسی شبکه، توسعه رابط کاربری گرافیکی و موارد دیگر.

در نظر گرفته شده است که این زبان به جای اینکه کاربردی باشد (استفاده آسان، کارآمد، کامل) باشد
زیبا (ریز، ظریف، مینیمال). از ویژگی های اصلی آن این است که استفاده از آن آسان است،
از برنامه نویسی رویه ای و شی گرا (OO) پشتیبانی می کند، دارای داخلی قدرتمند است
پشتیبانی از پردازش متن، و یکی از چشمگیرترین مجموعه های جهان را دارد
ماژول های شخص ثالث

تعاریف مختلفی از پرل در perl، perlfaq1 و بدون شک جاهای دیگر ارائه شده است. از جانب
این ما می توانیم تعیین کنیم که Perl برای افراد مختلف چیزهای متفاوتی است، اما بسیاری از آنها
مردم فکر می کنند حداقل ارزش نوشتن در مورد آن را دارد.

محل دویدن و پیاده روی پرل برنامه ها
برای اجرای یک برنامه Perl از خط فرمان یونیکس:

پرل progname.pl

از طرف دیگر، این را به عنوان خط اول اسکریپت خود قرار دهید:

#!/usr/bin/env پرل

... و اسکریپت را به صورت اجرا کنید /path/to/script.pl. البته باید قابل اجرا باشد
اول، بنابراین "chmod 755 script.pl" (تحت یونیکس).

(این خط شروع فرض می کند که شما آن را دارید env برنامه شما همچنین می توانید به طور مستقیم مسیر را به
فایل اجرایی پرل شما، مانند "#!/usr/bin/perl").

برای اطلاعات بیشتر، از جمله دستورالعمل‌هایی برای پلتفرم‌های دیگر مانند Windows و Mac
سیستم عامل، perlrun را بخوانید.

ایمنی خالص
پرل به طور پیش فرض بسیار بخشنده است. به منظور استحکام بیشتر توصیه می شود
هر برنامه را با خطوط زیر شروع کنید:

#!/usr/bin/perl
سخت استفاده کنید
استفاده از هشدارها؛

دو خط اضافی از perl درخواست می‌کنند تا مشکلات رایج مختلفی را در کد شما پیدا کند.
آنها چیزهای مختلف را بررسی می کنند بنابراین شما به هر دو نیاز دارید. مشکل بالقوه ای که با "استفاده سخت" گرفتار شده است.
باعث می شود کد شما بلافاصله پس از مواجه شدن با آن متوقف شود، در حالی که "از هشدارها استفاده کنید."
فقط یک اخطار می دهد (مانند سوئیچ خط فرمان -w) و اجازه دهید کد شما اجرا شود. به
در مورد آنها بیشتر بخوانید صفحات کتابچه راهنمای مربوطه خود را در اخطارهای سخت و دقیق بررسی کنید.

اساسی نحو مروری
یک اسکریپت یا برنامه پرل از یک یا چند عبارت تشکیل شده است. این اظهارات ساده است
در فیلمنامه به شکلی ساده نوشته شده است. نیازی به داشتن "main()" نیست.
عملکرد یا هر چیزی از این دست

عبارات پرل با نقطه ویرگول به پایان می رسد:

چاپ "سلام، جهان"؛

نظرات با نماد هش شروع می شود و تا انتهای خط ادامه می یابد

# این یک نظر است

فضای خالی بی ربط است:

چاپ
"سلام دنیا"
;

... به جز در داخل رشته های نقل قول:

# این با یک خط شکن در وسط چاپ می شود
چاپ "سلام
جهان"؛

گیومه های دوتایی یا تک نقل قول ممکن است در اطراف رشته های تحت اللفظی استفاده شوند:

چاپ "سلام، جهان"؛
چاپ "سلام، دنیا"؛

با این حال، فقط نقل قول های دوتایی متغیرها و کاراکترهای خاص مانند
خطوط جدید ("\n"):

چاپ "Hello, $name\n"؛ # خوب کار می کند
چاپ 'Hello, $name\n'; # $name\n را به معنای واقعی کلمه چاپ می کند

اعداد نیازی به نقل قول در اطراف خود ندارند:

چاپ 42;

می‌توانید از پرانتز برای آرگومان‌های توابع استفاده کنید یا آن‌ها را مطابق با شرایط شخصی خود حذف کنید
طعم و مزه آنها فقط گاهی اوقات برای روشن کردن موضوعات تقدم مورد نیاز هستند.

print("سلام، دنیا\n");
چاپ "سلام، دنیا\n"؛

اطلاعات دقیق تر در مورد نحو Perl را می توان در perlsyn یافت.

پرل متغیر انواع
پرل دارای سه نوع متغیر اصلی است: اسکالر، آرایه و هش.

اسکالرها
یک اسکالر یک مقدار واحد را نشان می دهد:

my $animal = "شتر";
پاسخ من = 42;

مقادیر اسکالر می توانند رشته ها، اعداد صحیح یا اعداد ممیز شناور باشند و Perl خواهد بود
به صورت خودکار بین آنها در صورت لزوم تبدیل می شود. نیازی به اعلام قبلی نیست
انواع متغیرها، اما شما باید اولین بار آنها را با استفاده از کلمه کلیدی "my" اعلام کنید
از آنها استفاده کنید. (این یکی از الزامات "استفاده سخت؛" است.)

مقادیر اسکالر را می توان به روش های مختلفی استفاده کرد:

چاپ $حیوان;
چاپ "حیوان $حیوان است\n";
چاپ "مربع $answer است "، $answer * $answer، "\n";

تعدادی اسکالر "جادویی" با نام هایی وجود دارد که شبیه نقطه گذاری یا خط هستند
سر و صدا. این متغیرهای ویژه برای همه نوع مقاصد استفاده می شوند و مستند هستند
در پرلوار تنها چیزی که در حال حاضر باید در مورد آن بدانید $_ است که "پیش‌فرض است
متغیر". به عنوان آرگومان پیش فرض تعدادی از توابع در پرل و. استفاده می شود
به طور ضمنی توسط ساختارهای حلقه ای خاص تنظیم شده است.

چاپ؛ # به طور پیش فرض محتویات $_ را چاپ می کند

آرایه ها
یک آرایه فهرستی از مقادیر را نشان می دهد:

my @animals = ("شتر"، "لاما"، "جغد");
شماره های @ من = (23، 42، 69);
my @mixed = ("شتر"، 42، 1.23);

آرایه ها دارای شاخص صفر هستند. در اینجا نحوه دستیابی به عناصر موجود در یک آرایه آمده است:

چاپ $animals[0]; # چاپ "شتر"
چاپ $animals[1]; # چاپ "لاما"

متغیر ویژه $#array نمایه آخرین عنصر یک آرایه را به شما می گوید:

چاپ $mixed[$#mixed]; # آخرین عنصر، چاپ 1.23

ممکن است وسوسه شوید که از "$#array + 1" استفاده کنید تا به شما بگوید چند آیتم در یک وجود دارد
آرایه. اذیت نکن همانطور که اتفاق می افتد، با استفاده از آرایه@ که پرل انتظار دارد یک اسکالر پیدا کند
مقدار ("در زمینه اسکالر") تعداد عناصر موجود در آرایه را به شما می دهد:

if (@حیوانات < 5) { ... }

عناصری که از آرایه دریافت می کنیم با یک "$" شروع می شوند زیرا ما فقط دریافت می کنیم
یک مقدار واحد از آرایه. شما یک اسکالر می خواهید، یک اسکالر می گیرید.

برای بدست آوردن چندین مقدار از یک آرایه:

@حیوانات[0,1]; # می دهد ("شتر"، "لاما")؛
@حیوانات[0..2]; # می دهد ("شتر"، "لاما"، "جغد")؛
@animals[1..$#animals]; # همه را به جز عنصر اول می دهد

این "برش آرایه" نامیده می شود.

شما می توانید کارهای مفید مختلفی را برای لیست ها انجام دهید:

my @sorted = مرتب سازی @animals;
من @backwards = معکوس @numbers;

چند آرایه خاص نیز وجود دارد، مانند @ARGV (آگومان های خط فرمان به
اسکریپت شما) و @_ (آگومان ها به یک زیر روال ارسال می شوند). اینها مستند شده اند
پرلوار

هاش
هش مجموعه ای از جفت های کلید/مقدار را نشان می دهد:

my %fruit_color = ("سیب"، "قرمز"، "موز"، "زرد");

می توانید از فضای خالی و عملگر "=>" برای چیدمان بهتر آنها استفاده کنید:

%fruit_color من = (
سیب => "قرمز"،
موز => "زرد"،
);

برای دستیابی به عناصر هش:

$fruit_color{"apple"}; # "قرمز" می دهد

شما می توانید لیستی از کلیدها و مقادیر را با "keys()" و "values()" دریافت کنید.

my @fruits = کلیدهای %fruit_colors;
my @colors = مقادیر %fruit_colors;

هش ها ترتیب داخلی خاصی ندارند، اگرچه می توانید کلیدها و حلقه ها را مرتب کنید
از طریق آنها.

درست مانند اسکالرها و آرایه های خاص، هش های ویژه نیز وجود دارد. خوب ترین
شناخته شده از آنها %ENV است که حاوی متغیرهای محیطی است. همه چیز را در مورد آن بخوانید (و
سایر متغیرهای ویژه) در perlvar.

اسکالرها، آرایه‌ها و هش‌ها به‌طور کامل‌تر در perldata مستند شده‌اند.

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

یک مرجع یک مقدار اسکالر است و می تواند به هر نوع داده دیگری Perl اشاره کند. بنابراین با ذخیره سازی یک
به عنوان مقدار یک آرایه یا عنصر هش ارجاع دهید، می توانید به راحتی لیست ها و هش ها را ایجاد کنید
در لیست ها و هش ها مثال زیر یک هش 2 سطحی از ساختار هش را نشان می دهد
با استفاده از مراجع هش ناشناس

متغیرهای $ من = {
اسکالر => {
توضیحات => "تک مورد"،
sigil => '$',
},
آرایه => {
توضیحات => "لیست سفارش داده شده از اقلام"،
sigil => '@',
},
هش => {
توضیحات => "جفت کلید/مقدار"،
sigil => '%',
},
};

چاپ "اسکالارها با $variables->{'scalar'}->{'sigil'}\n";

اطلاعات جامع در مورد موضوع مراجع را می توان در perlreftut، perllol، یافت.
perlref و perldsc.

متغیر محدوده
در سراسر بخش قبل، تمام مثال‌ها از نحو استفاده کرده‌اند:

my $var = "value";

"من" در واقع مورد نیاز نیست. شما فقط می توانید استفاده کنید:

$var = "value";

با این حال، استفاده بالا باعث ایجاد متغیرهای سراسری در سراسر برنامه شما می شود، که اینطور است
تمرین برنامه نویسی بد "my" به جای آن متغیرهایی با دامنه واژگانی ایجاد می کند. متغیرها
به بلوک (یعنی دسته ای از عبارات احاطه شده توسط پرانتزهای فرفری) که در آن
آنها تعریف شده اند.

my $x = "foo";
$some_condition من = 1;
if ($some_condition) {
my $y = "bar";
چاپ x $; # چاپ "foo"
چاپ $y; # چاپ "نوار"
}
چاپ x $; # چاپ "foo"
چاپ $y; # چیزی چاپ نمی کند. $y از محدوده خارج شده است

استفاده از "my" در ترکیب با "استفاده سخت"؛ در بالای اسکریپت های پرل شما به این معنی است
مفسر برخی از خطاهای رایج برنامه نویسی را دریافت می کند. به عنوان مثال، در
در مثال بالا، "print $y" نهایی یک خطای زمان کامپایل ایجاد می کند و از شما جلوگیری می کند
اجرای برنامه استفاده از "سخت" به شدت توصیه می شود.

مشروط و حلقه زنی می سازد
پرل بیشتر ساختارهای شرطی و حلقه ای معمول را دارد. از پرل 5.10، حتی
دارای عبارت case/switch (با املای "given"/"when"). به "تغییر بیانیه ها" در perlsyn مراجعه کنید
برای جزئیات بیشتر.

شرایط می تواند هر عبارت Perl باشد. لیست اپراتورها را در بخش بعدی مشاهده کنید
برای اطلاعات در مورد مقایسه و عملگرهای منطق بولی، که معمولاً در
عبارات مشروط

if
اگر (شرط) {
...
} elif ( شرط دیگر ) {
...
} دیگری {
...
}

همچنین یک نسخه رد شده از آن وجود دارد:

مگر اینکه ( شرط ) {
...
}

این به عنوان یک نسخه قابل خواندن تر از "if (!وضعیت)".

توجه داشته باشید که بریس ها در Perl مورد نیاز هستند، حتی اگر فقط یک خط در آن داشته باشید
مسدود کردن. با این حال، یک راه هوشمندانه برای بیشتر کردن بلوک های شرطی یک خطی شما وجود دارد
انگلیسی مانند:

#به روش سنتی
اگر ($zippy) {
چاپ "اوه!"؛
}

# راه پس شرط پرلیش
چاپ "اوه!" اگر $zippy;
چاپ "ما موز نداریم" مگر اینکه $bananas;

در حین
در حالی که ( شرط ) {
...
}

یک نسخه رد شده نیز وجود دارد، به همان دلیلی که "مگر اینکه" داریم:

تا ( شرط ) {
...
}

شما همچنین می توانید از "while" در شرایط پس از آن استفاده کنید:

چاپ "LA LA LA\n" در حالی که 1; # حلقه برای همیشه

دقیقاً مانند C:

برای ($i = 0; $i <= $max; $i++) {
...
}

سبک C برای حلقه به ندرت در Perl مورد نیاز است زیرا Perl دوستانه تر را ارائه می دهد
حلقه اسکن لیست "foreach".

برای هر
foreach (@array) {
چاپ "این عنصر $_\n است"؛
}

چاپ $list[$_] foreach 0 .. $max;

# لازم نیست از $_ پیش فرض نیز استفاده کنید...
foreach my $key (keys %hash) {
چاپ "مقدار $key is $hash{$key}\n";
}

کلمه کلیدی "foreach" در واقع مترادف کلمه کلیدی "for" است. به ""Foreach" مراجعه کنید
حلقه ها" در perlsyn".

برای جزئیات بیشتر در مورد ساختارهای حلقه (و برخی که در این بررسی اجمالی ذکر نشده اند)
پرلسین را ببینید.

ساخته شده اپراتور و توابع
پرل با طیف گسترده ای از توابع داخلی ارائه می شود. برخی از آنهایی که قبلاً داشته ایم
دیده می شود شامل "چاپ"، "مرتب سازی" و "معکوس". لیستی از آنها در آغاز ارائه شده است
perlfunc و شما به راحتی می توانید با استفاده از "perldoc -f" در مورد هر تابع داده شده بخوانید
نام تابع".

عملگرهای پرل به طور کامل در پرلوپ مستند شده اند، اما در اینجا چند مورد از رایج ترین آنها وجود دارد
آنهایی که:

حساب
+ اضافه کردن
- منها کردن
* ضرب
/ تقسیم

مقایسه عددی
== برابری
!= نابرابری
< کمتر از
> بیشتر از
<= کمتر یا مساوی
>= بزرگتر یا مساوی

مقایسه رشته ها
برابری معادل
نابرابری
کمتر از
gt بیشتر از
کمتر یا مساوی
ge بزرگتر یا مساوی

(چرا مقایسه عددی و رشته ای جداگانه داریم؟ چون نداریم
انواع متغیرهای خاص، و پرل باید بداند که آیا باید به صورت عددی مرتب شود یا نه (جایی که 99
کمتر از 100 است) یا بر اساس حروف الفبا (که 100 قبل از 99 است).

منطق بولی
&& و
|| یا
! نه

("و"، "یا" و "نه" فقط در جدول بالا به عنوان توضیحاتی از
اپراتورها آنها همچنین به عنوان اپراتور به تنهایی پشتیبانی می شوند. آنها بیشتر هستند
قابل خواندن نسبت به عملگرهای سبک C، اما اولویت های متفاوتی با "&&" و دارند
دوستان. برای جزئیات بیشتر، perlop را بررسی کنید.)

متفرقه
= تکلیف
. الحاق رشته
ضرب رشته x
.. عملگر محدوده (لیستی از اعداد یا رشته ها ایجاد می کند)

بسیاری از عملگرها را می توان با "=" به صورت زیر ترکیب کرد:

$a += 1; # مشابه $a = $a + 1
$a -= 1; # همان $a = $a - 1
$a .= "\n"; # همان $a = $a . "\n"؛

فایل ها و I / O
با استفاده از تابع "open()" می توانید یک فایل را برای ورودی یا خروجی باز کنید. این مستند در
جزئیات عجیب و غریب در perlfunc و perlopentut، اما به طور خلاصه:

open(my $in، "<"، "input.txt") یا die "نمی توان input.txt را باز کرد: $!";
open(my $out، ">"، "output.txt") یا die "نمی توان output.txt را باز کرد: $!";
open(my $log، ">>"، "my.log") یا die "نمی توان my.log را باز کرد: $!";

با استفاده از عملگر "<>" می توانید از یک filehandle باز بخوانید. در زمینه اسکالر خوانده می شود
یک خط از filehandle، و در زمینه فهرست، کل فایل را در،
اختصاص دادن هر خط به یک عنصر از لیست:

my $line = <$in>;
خطوط @ من = <$in>;

خواندن کل فایل در یک زمان را slurping می گویند. می تواند مفید باشد اما ممکن است مفید باشد
یک گراز حافظه اکثر پردازش فایل های متنی را می توان در یک خط با حلقه پرل انجام داد
سازه ها

عملگر "<>" اغلب در یک حلقه "while" دیده می شود:

while (<$in>) { # هر خط را به نوبه خود به $_ اختصاص می دهد
چاپ "فقط در این خط بخوانید: $_";
}

قبلاً نحوه چاپ به خروجی استاندارد با استفاده از "print()" را دیده ایم. با این حال، "print()"
همچنین می تواند یک آرگومان اول اختیاری را انتخاب کند که مشخص می کند کدام فایل handle باید در آن چاپ شود:

چاپ STDERR "این آخرین هشدار شما است.\n";
چاپ $out $record;
چاپ $log $logmessage;

وقتی کار با فایل‌هندل‌هایتان تمام شد، باید آن‌ها را «بسته ()» (البته صادقانه بگوییم،
اگر فراموش کردید پرل بعد از شما پاک می شود:

بستن $in یا مرگ "$in: $!";

منظم اصطلاحات
پشتیبانی بیان منظم پرل هم گسترده و هم عمیق است و موضوع طولانی است
مستندات در perlrequick، perlretut، و جاهای دیگر. با این حال، به طور خلاصه:

تطبیق ساده
if (/foo/) { ... } # true if $_ حاوی "foo" باشد
if ($a =~ /foo/) { ... } # true if $a حاوی "foo" باشد

عملگر تطبیق "//" در perlop مستند شده است. به طور پیش فرض روی $_ یا
را می توان با استفاده از عملگر الزام آور "=~" به متغیر دیگری متصل کرد (همچنین مستند شده در
پرلوپ).

تعویض ساده
s/foo/bar/; # foo را با نوار در $_ جایگزین می کند
$a =~ s/foo/bar/; # foo را با نوار در $a جایگزین می کند
$a =~ s/foo/bar/g; # همه نمونه های foo را با نوار جایگزین می کند
# در a $

عملگر جایگزینی "s///" در perlop مستند شده است.

عبارات منظم پیچیده تر
لازم نیست فقط روی رشته های ثابت مطابقت داشته باشید. در واقع، شما می توانید تقریباً مطابقت داشته باشید
هر چیزی که می توانستید با استفاده از عبارات منظم پیچیده تر رویای آن را داشته باشید. اینها هستند
به طور طولانی در پرلر ثبت شده است، اما در عین حال، در اینجا یک تقلب سریع وجود دارد
ورق:

. یک شخصیت واحد
\sa کاراکتر فضای خالی (فضا، برگه، خط جدید،
...)
\S کاراکتر بدون فضای سفید
رقم \da (0-9)
\D یک غیر رقمی
\wa نویسه کلمه (az، AZ، ​​0-9، _)
\W یک کاراکتر غیر کلمه ای
[aeiou] با یک کاراکتر در مجموعه داده شده مطابقت دارد
[^aeiou] با یک کاراکتر خارج از داده شده مطابقت دارد
تنظیم
(foo|bar|baz) با هر یک از گزینه های مشخص شده مطابقت دارد

^ شروع رشته
$ انتهای رشته

برای تعیین تعداد موارد قبلی که می خواهید مطابقت داشته باشید، می توان از کمیت کننده ها استفاده کرد
در، جایی که "چیز" به معنای یک کاراکتر تحت اللفظی است، یکی از متاکاراکترهای ذکر شده
در بالا، یا گروهی از کاراکترها یا متاکاراکترهای داخل پرانتز.

* صفر یا بیشتر از چیز قبلی
+ یک یا چند مورد قبلی
? صفر یا یکی از موارد قبلی
{3} دقیقاً با 3 مورد قبلی مطابقت دارد
{3,6،3} بین 6 و XNUMX مورد قبلی مطابقت دارد
{3,} با 3 یا بیشتر مورد قبلی مطابقت دارد

چند مثال کوتاه:

/^\d+/ رشته با یک یا چند رقم شروع می شود
/^$/ هیچ چیز در رشته نیست (شروع و پایان هستند
مجاور)
/(\d\s){3}/ سه رقم، هر کدام با یک فضای خالی همراه است
کاراکتر (به عنوان مثال "3 4 5")
/(a.)+/ رشته ای را که در آن هر فرد دارای اعداد فرد است مطابقت دارد
حرف یک است (به عنوان مثال "abacadaf")

# این حلقه از STDIN خوانده می شود و خطوط غیر خالی را چاپ می کند:
در حالی که (<>) {
بعدی اگر /^$/;
چاپ؛
}

پرانتز برای گرفتن
پرانتزها علاوه بر گروه بندی، هدف دومی را نیز دنبال می کنند. می توان از آنها برای گرفتن استفاده کرد
نتایج بخش‌هایی از regexp برای استفاده بعدی مطابقت دارد. نتایج به $1، $2 ختم می شود
و الی آخر.

# راهی ارزان و بد برای تقسیم کردن یک آدرس ایمیل

if ($email =~ /([^@]+)@(.+)/) {
چاپ "نام کاربری $1\n" است.
چاپ "نام میزبان $2\n" است.
}

سایر ویژگی های regexp
رجیکس های پرل همچنین از مراجع برگشتی، پیش بینی ها و انواع پیچیده های دیگر پشتیبانی می کنند
جزئیات. همه چیز در مورد آنها را در perlrequick، perlretut و perlre بخوانید.

نوشته زیرمجموعه ها
نوشتن زیر برنامه ها آسان است:

زیر ثبت {
my $logmessage = shift;
باز کردن $logfile من، ">>"، "my.log" یا مرگ "نمی توان my.log را باز کرد: $!";
چاپ $logfile $logmessage;
}

اکنون می‌توانیم از زیربرنامه مانند هر تابع داخلی دیگر استفاده کنیم:

logger ("ما یک زیر برنامه لاگر داریم!");

آن "تغییر" چیست؟ خوب، آرگومان های یک زیربرنامه به عنوان یک برنامه خاص در دسترس ما هستند
آرایه ای به نام @_ (برای اطلاعات بیشتر در مورد آن به perlvar مراجعه کنید). آرگومان پیش فرض برای "shift"
تابع فقط @_ است. بنابراین "my $logmessage = shift;" اولین مورد را خاموش می کند
لیستی از آرگومان ها و آن را به $logmessage اختصاص می دهد.

می‌توانیم @_ را به روش‌های دیگری نیز دستکاری کنیم:

my ($logmessage, $priority) = @_; # مشترک
my $logmessage = $_[0]; # غیر معمول و زشت

زیربرنامه ها همچنین می توانند مقادیر را برگردانند:

مربع فرعی {
من $num = shift;
من $نتیجه = $num * $num;
بازگشت $result;
}

سپس از آن مانند استفاده کنید:

$sq = مربع(8)؛

برای اطلاعات بیشتر در مورد نوشتن زیربرنامه ها، به perlsub مراجعه کنید.

OO پرل
OO Perl نسبتا ساده است و با استفاده از منابعی که می دانند چه نوع از آن استفاده می شود، پیاده سازی می شود
هدف آنها بر اساس مفهوم بسته های پرل است. با این حال، OO Perl تا حد زیادی فراتر است
محدوده این سند perlootut و perlobj را بخوانید.

به عنوان یک برنامه نویس مبتدی پرل، رایج ترین استفاده شما از OO Perl در استفاده از سومین برنامه است.
ماژول های حزب، که در زیر مستند شده است.

با استفاده از پرل ماژول ها
ماژول‌های پرل طیف وسیعی از ویژگی‌ها را برای کمک به شما در جلوگیری از اختراع مجدد چرخ ارائه می‌کنند
از CPAN دانلود شود ( http://www.cpan.org/ ). تعدادی از ماژول های محبوب هستند
با خود توزیع پرل گنجانده شده است.

دسته بندی ماژول ها از دستکاری متن گرفته تا پروتکل های شبکه تا پایگاه داده را شامل می شود
ادغام با گرافیک یک لیست طبقه بندی شده از ماژول ها نیز از CPAN موجود است.

برای یادگیری نحوه نصب ماژول هایی که از CPAN دانلود می کنید، perlmodinstall را بخوانید.

برای یادگیری نحوه استفاده از یک ماژول خاص، از "perldoc ماژول::نام". به طور معمول شما
می خواهند "استفاده کنند ماژول::نام"، که سپس به شما امکان دسترسی به توابع صادر شده یا یک OO را می دهد
رابط به ماژول

perlfaq شامل سوالات و پاسخ های مربوط به بسیاری از وظایف رایج است و اغلب ارائه می دهد
پیشنهاداتی برای استفاده از ماژول های خوب CPAN.

perlmod ماژول های پرل را به طور کلی توصیف می کند. perlmodlib ماژول های ارائه شده را فهرست می کند
نصب پرل شما

اگر میل به نوشتن ماژول های پرل دارید، perlnewmod به شما توصیه خوبی می کند.

با استفاده از خدمات onworks.net به صورت آنلاین از perlintro استفاده کنید


سرورها و ایستگاه های کاری رایگان

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

  • 1
    اتم
    اتم
    Atom یک ویرایشگر متن است
    مدرن، قابل دسترس و با امکانات کامل.
    همچنین به راحتی قابل تنظیم است - شما
    می تواند آن را برای انجام هر کاری سفارشی کند و باشد
    قادر بودن به ...
    Atom را دانلود کنید
  • 2
    اوسو!
    اوسو!
    اوسو! یک بازی ریتم ساده با چاه است
    منحنی یادگیری برای بازیکنان در نظر گرفته شده است
    از تمام سطوح مهارت یکی از بزرگان
    جنبه های Osu! این است که
    جامعه - دکتر ...
    دانلود Osu!
  • 3
    LIBPNG: کتابخانه مرجع PNG
    LIBPNG: کتابخانه مرجع PNG
    کتابخانه مرجع برای پشتیبانی از
    فرمت گرافیک شبکه قابل حمل (PNG).
    مخاطب: توسعه دهندگان برنامه نويسي
    زبان: C. این برنامه ای است که
    نیز میتواند...
    دانلود LIBPNG: کتابخانه مرجع PNG
  • 4
    فلزیاب بر اساس RP2040
    فلزیاب بر اساس RP2040
    بر اساس برد Raspberry Pi Pico، این
    فلزیاب در پالس گنجانده شده است
    دسته فلزیاب های القایی، با
    مزایا و معایب شناخته شده
    RP...
    دانلود فلزیاب بر اساس RP2040
  • 5
    مدیر PAC
    مدیر PAC
    PAC یک جایگزین Perl/GTK است
    SecureCRT/Putty/و غیره (لینوکس
    ssh/telnet/... gui)... یک رابط کاربری گرافیکی فراهم می کند
    برای پیکربندی اتصالات: کاربران،
    رمزهای عبور، انتظار قانونی...
    PAC Manager را دانلود کنید
  • 6
    GeoServer
    GeoServer
    GeoServer یک نرم افزار متن باز است
    سرور نوشته شده در جاوا که به کاربران اجازه می دهد
    برای اشتراک گذاری و ویرایش داده های مکانی
    طراحی شده برای قابلیت همکاری، آن است
    منتشر می کند ...
    GeoServer را دانلود کنید
  • بیشتر "

دستورات لینوکس

Ad