توابع رشتهای
length، uc/lc، substr، index، reverse و join/split.
جعبهابزار رشته پرل
| تابع | کار | مثال | نتیجه |
|---|---|---|---|
length(s) | طول | length("Perl") | 4 |
uc(s) | حروف بزرگ | uc("hello") | HELLO |
lc(s) | حروف کوچک | lc("HI") | hi |
ucfirst(s) | اول بزرگ | ucfirst("perl") | Perl |
substr(s, o, n) | برش | substr("Perl", 0, 2) | Pe |
index(s, sub) | جستجو | index("hello", "l") | 2 |
reverse(s) | برعکس | reverse("abc") | cba |
substr — چاقوی سوئیسی
my $s = "Programming";
say substr($s, 0, 3); { Pro — از ۰ سه کاراکتر }
say substr($s, 3); { gramming — از ۳ تا آخر }
say substr($s, -3); { ing — سهتای آخر }
say substr($s, -6, 3); { amm — از آخر }
index — پیدا کردن موقعیت
my $s = "Hello World";
say index($s, "World"); { 6 }
say index($s, "xyz"); { -1 — پیدا نشد }
if (index($s, "World") != -1) {
say "پیدا شد!";
}
join و split — تبدیل متقابل
my @words = ("Learning", "City");
my $joined = join(" ", @words); { Learning City }
my $csv = "ali,sara,reza";
my @names = split(/,/, $csv); { (ali, sara, reza) }
مثال: پالیندروم
sub is_palindrome {
my ($s) = @_;
my $clean = lc($s);
$clean =~ s/[^a-z0-9]//g; { حذف غیرحروفی — regex! }
return $clean eq reverse($clean);
}
say is_palindrome("radar") ? "بله" : "نه";
مثال: حروف اول کلمات
my $name = "learning city perl";
my @words = split(/ /, $name);
my $initials = "";
$initials .= uc(substr($_, 0, 1)) foreach @words;
say $initials; { LCP }
خلاصه
- length/uc/lc/ucfirst — پایه
- substr برش، index جستجو
- join/split — تبدیل رشته ↔ آرایه
این مبحث بخشی از دوره آموزش کامل پرل است.