پروژه: دفترچه تلفن

پروژه نهایی: دفترچه تلفن با هش، جستجو، افزودن/حذف و گزارش.

پروژه نهایی: دفترچه تلفن 📞

بزرگ‌ترین پروژه دوره — همه آموخته‌ها در یک برنامه!

کد کامل

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. حالا می‌توانید:

این مبحث بخشی از دوره آموزش کامل پرل است.

ابزارهای مرتبط