پروژه: دفترچه تلفن
پروژه نهایی: دفترچه تلفن با هش، جستجو، افزودن/حذف و گزارش.
پروژه نهایی: دفترچه تلفن 📞
بزرگترین پروژه دوره — همه آموختهها در یک برنامه!
کد کامل
my %phonebook;
sub add_contact {
my ($name, $phone) = @_;
$phonebook{$name} = $phone;
say "✅ $name اضافه شد";
}
sub remove_contact {
my ($name) = @_;
if (exists $phonebook{$name}) {
delete $phonebook{$name};
say "🗑 $name حذف شد";
} else {
say "❌ $name پیدا نشد";
}
}
sub find_contact {
my ($name) = @_;
return exists $phonebook{$name} ? $phonebook{$name} : undef;
}
sub search_partial {
my ($text) = @_;
my @found;
foreach my $name (keys %phonebook) {
push @found, $name if $name =~ /$text/i; { جستجوی جزئی! }
}
return sort @found;
}
sub list_all {
say "--- CONTACTS (" . scalar(keys %phonebook) . ") ---";
foreach my $name (sort keys %phonebook) {
printf("%-15s %s\n", $name, $phonebook{$name});
}
}
# ---- استفاده ----
add_contact("Ali Mohammadi", "0912-111-2222");
add_contact("Sara Ahmadi", "0935-333-4444");
add_contact("Mohammad Rezaei", "0919-555-6666");
add_contact("Neda Karimi", "0912-777-8888");
list_all();
say "--- جستجوی دقیق ---";
my $p = find_contact("Sara Ahmadi");
say "Sara: $p" if defined $p;
say "--- جستجوی جزئی 'moha' ---";
say " - $_" foreach search_partial("moha");
remove_contact("Neda Karimi");
list_all();
مفاهیم بهکاررفته
| مفهوم | کجا؟ |
|---|---|
| هش | ذخیره مخاطبین |
| exists/delete | حذف امن |
| regex با i | جستجوی جزئی بیتوجه به حروف |
| printf | گزارش مرتب |
| sub ها | ساختار ماژولار |
تبریک! 🎉
شما دوره کامل پرل را تمام کردید! از «سلام دنیا» تا سیستمهای کامل با هش، regex و sub. حالا میتوانید:
- هر متنی را با regex پردازش کنید
- با آرایه/هش/ارجاع داده ساختار دهید
- کد پرلی تمیز و حرفهای بنویسید
- به سراغ CPAN و اسکریپتهای واقعی بروید!
این مبحث بخشی از دوره آموزش کامل پرل است.