توابع آرایه
push/pop/shift/unshift، reverse، sort و join.
چهار عمل اصلی — مثل صف و پشته!
| تابع | کار | مثال |
|---|---|---|
push | افزودن به آخر | push @arr, $x; |
pop | حذف از آخر | my $last = pop @arr; |
shift | حذف از اول | my $first = shift @arr; |
unshift | افزودن به اول | unshift @arr, $x; |
my @stack = (1, 2, 3);
push @stack, 4; { (1,2,3,4) }
my $top = pop @stack; { 4 — حذف از آخر }
my $front = shift @stack; { 1 — حذف از اول }
unshift @stack, 0; { (0,2,3) }
push/pop = پشته (LIFO)، push/shift = صف (FIFO)!
reverse — برعکس کردن
my @arr = (1, 2, 3);
my @rev = reverse @arr; { (3,2,1) }
say scalar reverse "hello"; { olleh — روی رشته هم! }
sort — مرتبسازی
my @words = ("banana", "apple", "cherry");
my @sorted = sort @words; { الفبایی }
my @nums = (10, 2, 33);
my @num_sorted = sort { $a <=> $b } @nums; { عددی: (2,10,33) }
sort پیشفرض رشتهای است! برای اعداد حتماً
sort { $a <=> $b } بنویسید — وگرنه 10 قبل از 2 میآید!join — آرایه به رشته
my @arr = ("a", "b", "c");
say join(",", @arr); { a,b,c }
say join(" - ", @arr); { a - b - c }
split — رشته به آرایه
my $csv = "ali,sara,reza";
my @names = split(/,/, $csv); { ("ali","sara","reza") }
my $text = "hello world foo";
my @words = split(/ /, $text); { بر اساس فاصله }
مثال کامل: پردازش لیست
my @scores = (18, 9, 15, 20, 12);
push @scores, 17; { افزودن }
my $best = (sort { $b <=> $a } @scores)[0]; { بیشترین }
say join(" | ", sort { $a <=> $b } @scores);
خلاصه
- push/pop آخر، shift/unshift اول
- sort { $a <=> $b } عددی، sort رشتهای
- join چسباندن، split جدا کردن
این مبحث بخشی از دوره آموزش کامل پرل است.