Perl چیست؟ آموزش کامل و جامع Perl
فهرست مطالب
Perl چیست؟
Perl (Practical Extraction and Reporting Language) یک زبان برنامهنویسی سطح بالا، همهمنظوره و تفسیری است که برای پردازش متن، مدیریت سیستم و برنامهنویسی وب طراحی شده است.
#!/usr/bin/perl
use strict;
use warnings;
print "سلام دنیا!\n";
my $name = "علی";
print "سلام $name\n";
تاریخچه Perl
Perl در سال ۱۹۸۷ توسط لری وال (Larry Wall) ایجاد شد. هدف اصلی آن ترکیب قابلیتهای sed، awk و shell scripting در یک زبان واحد بود.
ساختار پایه Perl
یک اسکریپت Perl معمولاً از بخشهای زیر تشکیل شده است:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
# تعریف متغیرها
my $variable = "مقدار";
# تعریف توابع
sub my_function {
my ($param) = @_;
return $param;
}
# بدنه اصلی برنامه
print "برنامه اصلی\n";
ساختار نحوی Perl
نحو Perl ترکیبی از زبانهای C، shell script، awk و sed است. این زبان دارای ویژگیهای منحصر به فردی در نگارش کد است.
علامتهای خاص در Perl
# متغیر اسکالر
$scalar = "مقدار";
# آرایه
@array = (1, 2, 3);
# هش (دیکشنری)
%hash = (
'کلید' => 'مقدار',
'key' => 'value'
);
متغیرها در Perl
Perl سه نوع اصلی متغیر دارد: اسکالر، آرایه و هش. هر کدام کاربردهای خاص خود را دارند.
انواع متغیر
#!/usr/bin/perl
use strict;
use warnings;
# متغیر اسکالر - میتواند عدد، رشته یا reference باشد
my $name = "علی";
my $age = 25;
my $height = 1.75;
# آرایه - لیستی از مقادیر
my @fruits = ("سیب", "پرتقال", "موز");
print $fruits[0]; # چاپ: سیب
# هش - جفتهای کلید-مقدار
my %person = (
name => "علی",
age => 25,
city => "تهران"
);
print $person{name}; # چاپ: علی
عبارات منظم در Perl
Perl به خاطر پشتیبانی قوی از عبارات منظم (regex) شناخته میشود. این ویژگی یکی از نقاط قوت اصلی زبان است.
# جستجو در متن
$text = "سلام دنیا";
if ($text =~ /سلام/) {
print "پیدا شد!\n";
}
# جایگزینی
$text =~ s/دنیا/ایران/; # جایگزینی دنیا با ایران
# استخراج ایمیل
$email = "[email protected]";
if ($email =~ /^[\w\.-]+@[\w\.-]+\.\w+$/) {
print "ایمیل معتبر است\n";
}
توابع در Perl
توابع در Perl با کلمه کلیدی sub تعریف میشوند و میتوانند پارامتر دریافت کرده و مقدار برگردانند.
sub greet {
my ($name) = @_; # دریافت پارامتر
return "سلام $name!";
}
sub calculate_sum {
my (@numbers) = @_;
my $sum = 0;
$sum += $_ for @numbers;
return $sum;
}
# استفاده از توابع
print greet("علی"); # چاپ: سلام علی!
my $total = calculate_sum(1, 2, 3, 4, 5); # جمع: 15
ماژولها در Perl
ماژولها در Perl امکان سازماندهی و استفاده مجدد از کد را فراهم میکنند. CPAN (Comprehensive Perl Archive Network) یکی از بزرگترین مخازن ماژول است.
use strict;
use warnings;
use JSON;
use DBI;
use LWP::Simple;
# استفاده از JSON برای پردازش داده
my $json_text = '{"name": "علی", "age": 25}';
my $data = decode_json($json_text);
print $data->{name};
# اتصال به دیتابیس با DBI
my $dbh = DBI->connect("DBI:mysql:database=test", "user", "password");
# دریافت صفحه وب با LWP::Simple
my $content = get("https://example.com");
مدیریت فایل در Perl
Perl ابزارهای قدرتمندی برای کار با فایلها ارائه میدهد.
# خواندن فایل
open(my $fh, '<', 'input.txt') or die "نمیتوان فایل را باز کرد: $!";
while (my $line = <$fh>) {
chomp $line;
print $line;
}
close $fh;
# نوشتن در فایل
open(my $fh, '>', 'output.txt') or die "نمیتوان فایل را باز کرد: $!";
print $fh "این یک متن تست است\n";
close $fh;
# اضافه کردن به فایل
open(my $fh, '>>', 'log.txt') or die "نمیتوان فایل را باز کرد: $!";
print $fh "لاگ جدید\n";
close $fh;
بهترین شیوههای کدنویسی Perl
رعایت اصول و بهترین شیوههای کدنویسی در Perl به بهبود کیفیت و نگهداری کد کمک میکند:
۱. استفاده از use strict و use warnings
این دستورات به شناسایی خطاهای احتمالی کمک میکنند.
۲. نامگذاری مناسب متغیرها
استفاده از نامهای معنادار و توصیفی برای متغیرها و توابع.
۳. مستندسازی کد
استفاده از کامنتهای مناسب و POD (Plain Old Documentation) برای مستندسازی.
کاربردهای Perl
Perl در زمینههای مختلفی کاربرد دارد:
۱. مدیریت سیستم
اتوماسیون وظایف سیستمی و اسکریپتنویسی سرور
۲. پردازش متن
تحلیل لاگها، پردازش فایلهای متنی و تبدیل فرمتها
۳. برنامهنویسی وب
توسعه اپلیکیشنهای وب با استفاده از فریمورکهایی مانند Catalyst و Mojolicious
ابزارهای مفید برای کار با Perl
برای توسعه بهتر با Perl، ابزارهای مفید زیر را در نظر بگیرید:
محیطهای توسعه
– Padre IDE
– Visual Studio Code با افزونه Perl
– Komodo IDE
ابزارهای تست
– Test::More
– Test::Simple
– Devel::Cover
ابزارهای دیباگ
– Perl Debugger (perl -d)
– Devel::ptkdb
– Devel::Trace