اسکالرها (Scalars)

متغیر اسکالر با $: اعداد، رشته‌ها، undef و درج در رشته‌ها.

اسکالر: واحد پایه داده پرل

اسکالر (Scalar) یک تک مقدار است: یک عدد، یک رشته، یا undef. اسکالرها با سیگیل $ مشخص می‌شوند:

my $name = "Ali";      { رشته }
my $age = 16;          { عدد صحیح }
my $pi = 3.14159;      { عدد اعشاری }
my $nothing;           { undef — تعریف‌نشده }
کلمه my متغیر را به‌صورت محلی (lexical) اعلام می‌کند — همیشه از my استفاده کنید! این از بهترین شیوه‌های پرل است.

پرل نوع‌بندی سخت ندارد!

برخلاف پاسکال، یک اسکالر می‌تواند هر چیزی باشد و عوض شود:

my $x = 42;        { عدد }
$x = "hello";      { حالا رشته! }
$x = 3.14;         { حالا اعشاری! }

پرل خودش بین عدد و رشته بر اساس زمینه (context) تبدیل می‌کند:

my $str = "42";
say $str + 8;      { 50 — رشته به عدد تبدیل شد! }
my $num = 10;
say $num . "!";    { "10!" — عدد به رشته تبدیل شد! }

تخصیص و عملیات

my $x = 5;
my $y = $x + 3;      { 8 }
$x = $x * 2;         { 10 }
$x += 5;             { 15 — میان‌بر }
$x .= "!";           { "15!" — اتصال میان‌بر }

undef — مقدار تعریف‌نشده

متغیر بدون مقدار = undef:

my $x;
if (defined($x)) { say "defined" } else { say "undefined" }
$x = 0;
if (defined($x)) { say "صفر هم defined است!" }
undef با صفر یا رشته خالی متفاوت است! defined() فقط چک می‌کند مقدار دارد یا نه.

درج در رشته (Interpolation)

یکی از قوی‌ترین ویژگی‌های پرل:

my $name = "Ali";
my $age = 16;
my @fruits = ("سیب", "موز");

say "سلام $name!";           { درج اسکالر }
say "${name}جان";             { با آکولاد — مرز مشخص }
say "میوه‌ها: @fruits";       { درج آرایه — با فاصله }
say 'بدون درج: $name';       { تک‌کوتیشن — literal }

افزایش و کاهش

my $i = 5;
$i++;          { 6 }
$i--;          { 5 }
my $j = $i++;  { j=5, i=6 — پس‌افزایش }
my $k = ++$i;  { k=7, i=7 — پیش‌افزایش }

خلاصه

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

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