Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования PerlΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 9

Автор ΠœΠΈΡ…Π°ΠΈΠ» Π¨ΠΎΡ…ΠΈΡ€Π΅Π²

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Π²Ρ‹Π±ΠΎΡ€Π° (ΠΈΠ»ΠΈ условная опСрация) - это СдинствСнная Π² Perl тСрнарная опСрация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ - условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ истинный, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°, ΠΈΠ½Π°Ρ‡Π΅ - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. ПослС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ставится Π·Π½Π°ΠΊ вопроса, Π° послС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ - Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅. НапримСр:


($n < 0) ? 0 : --$n $temperature < 20 ? 'Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎ' : 'Ρ‚Π΅ΠΏΠ»ΠΎ'


ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² языкС Perl Π½Π΅ ограничиваСтся рассмотрСнными Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ. По ΠΌΠ΅Ρ€Π΅ изучСния Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ описаны Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ спСциализированныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НапримСр, Π½Π°ΠΌ навСрняка понадобится опСрация чтСния строки ΠΈΠ· стандартного Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ связанного с систСмной консолью). Она обозначаСтся символами <> ΠΈ ΠΏΠΎ- английски называСтся diamond, Ρ‡Ρ‚ΠΎ Π½Π° русский Π»ΡƒΡ‡ΡˆΠ΅ всСго пСрСвСсти ΠΊΠ°ΠΊ "кристалл" (хотя встрСчаСтся русскоС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ "Ρ€ΠΎΠΌΠ±"). Π­Ρ‚Π° опСрация считываСт ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΡƒΡŽ строку ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:


$line = <> # ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² $line строку ΠΈΠ· стандартного Π²Π²ΠΎΠ΄Π°


Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… лСкциях продолТится Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎΠ± особСнностях примСнСния ΡƒΠΆΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ситуациях ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ опрСдСляСтся ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ΠΈ Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скобок. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ опрСдСляСт порядок вычислСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ: ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ€Π°Π½ΡŒΡˆΠ΅. НапримСр, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ умноТСния ΠΈ дСлСния Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ слоТСния ΠΈ вычитания. ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ опрСдСляСт порядок вычислСний, Ссли Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ слСва Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Но ΠΈΠ· Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ справа, ΠΏΠ΅Ρ€Π²ΠΎΠΉ вычисляСтся стоящая справа. НапримСр:


$a ** $b ** $c # Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ справа, Ρ‚.Π΅. $a**($b**$c) $a * $b / $c # Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ слСва, Ρ‚.Π΅. ($a * $b) / $c $a && $b && $c # Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ слСва, Ρ‚.Π΅. ($a && $b) && $c $a = $b = $c # Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ справа, Ρ‚.Π΅. $a = ($b = $c) $a | $b ^ $c # Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ слСва, Ρ‚.Π΅. ($a | $b) ^ $c


Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3.2 приводится ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, пСрСчислСнных Π² порядкС убывания ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ², с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΡ… ассоциативности. Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π½Ρ‹ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ языка Perl, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π½Π΅ рассмотрСнныС Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ. МногиС ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… лСкциях.

Π’Π°Π±Π»ΠΈΡ†Π° 3.2. ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (ΠΎΡ‚ высокого ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ).ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΠ‘Π»Π΅Π²Π°24Ρ‚Π΅Ρ€ΠΌΡ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списками (справа Π½Π°Π»Π΅Π²ΠΎ)Π‘Π»Π΅Π²Π°24-> (Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅)НС ассоциативныС22++ -- (Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚, Π°Π²Ρ‚ΠΎΠ΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚)Π‘ΠΏΡ€Π°Π²Π°21** (Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ)Π‘ΠΏΡ€Π°Π²Π°20! ~ \ + - (логичСскоС НЕ, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅, опСрация ссылки, ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс, ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус)Π‘Π»Π΅Π²Π°19=~ !~ (привязка ΠΊ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ: совпадСниС, нСсовпадСниС)Π‘Π»Π΅Π²Π°18* / % Ρ… (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ строки)Π‘Π»Π΅Π²Π°17+ - . (слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, конкатСнация строк)Π‘Π»Π΅Π²Π°16<< >> (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ сдвиг Π²Π»Π΅Π²ΠΎ ΠΈΠ»ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ)НС ассоциативныС15ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ файламиНС ассоциативныС14< > lt gt le ge (мСньшС, большС, мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ, большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ ΠΈ ΠΈΡ… строковыС эквивалСнты)НС ассоциативныС13== != <=> eq ne cmp (Ρ€Π°Π²Π½ΠΎ, Π½Π΅ Ρ€Π°Π²Π½ΠΎ, сравнСниС ΠΈ ΠΈΡ… строковыС эквивалСнты)Π‘Π»Π΅Π²Π°12& (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ И)Π‘Π»Π΅Π²Π°11| ^ (ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ Π˜Π›Π˜, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜)Π‘Π»Π΅Π²Π°10&& (логичСскоС И)Π‘Π»Π΅Π²Π°9|| (логичСскоС Π˜Π›Π˜)НС ассоциативныС8.. ... (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ значСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹)Π‘ΠΏΡ€Π°Π²Π°7?: (опСрация Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ условная опСрация)Π‘ΠΏΡ€Π°Π²Π°6= += -= *= ΠΈ Ρ‚. Π΄. (присваиваниС ΠΈ присваиваниС с вычислСниСм)Π‘Π»Π΅Π²Π°5, => (запятая ΠΈ запятая-стрСлка)НС ассоциативныС4ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списками (слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ)Π‘ΠΏΡ€Π°Π²Π°3not (логичСскоС НЕ)Π‘Π»Π΅Π²Π°2and (логичСскоС И)Π‘Π»Π΅Π²Π°1or xor (логичСскоС Π˜Π›Π˜, логичСскоС ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅ Π˜Π›Π˜)

Π’ Perl имССтся большоС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈ вСсьма экзотичСских. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ сомнСниС Π² порядкС ΠΈΡ… вычислСний, Ρ‚ΠΎ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скобки для управлСния ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒΡŽ вычислСний Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ПониманиС ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΎ скалярных опСрациях ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Perl, хотя Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ здСсь ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ излишнС. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ выраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ основой для освоСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΎ синтаксичСских ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… языка Perl, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ.

ЛСкция 4. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры

Π’ этой Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ основы синтаксиса языка Perl, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° составлСния Perl-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Π½Π΅ΠΉ рассмотрСно всС ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… структур, ΠΊΠ°ΠΊ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ спСцифичных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого языка программирования. Π‘Ρ‚ΠΈΠ»ΡŒ программирования Π½Π° Perl ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ свободу выраТСния ΠΈΠ΄Π΅ΠΉ программиста, ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ синтаксичСскиС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ максимально ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ этому.

ЦСль Π»Π΅ΠΊΡ†ΠΈΠΈ: ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с синтаксичСскими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ составлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Perl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сначала ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСпростыми, Π½ΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΌΠΎΡ‰ΡŒΡŽ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ…ΠΎΠ΄ΠΎΠΌ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ стилСй ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Минимальная синтаксичСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π° языка программирования называСтся Ρ‚Π΅Ρ€ΠΌΠΎΠΌ. Π’Π΅Ρ€ΠΌ (term) - это всС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΈΠ»ΠΈ пСрСмСнная. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π΅ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ Π² СстСствСнном языкС. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ стало Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (statement, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ), Π½ΡƒΠΆΠ½ΠΎ послС Π½Π΅Π³ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ ";" (Ρ‚ΠΎΡ‡ΠΊΠ° с запятой). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, простоС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, вычисляСмоС Ρ€Π°Π΄ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ эффСкта. ΠšΡ€ΠΎΠΌΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Perl ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΠΏΠΎΠ·Π΄Π½Π΅Π΅. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ простых ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ:


$count = 0; # присваиваниС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $count++; # ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° $result = 'Π˜Ρ‚ΠΎΠ³ΠΎ=' . $count . "\n"; # ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ 1; # Π»ΠΈΡ‚Π΅Ρ€Π°Π» - минимальноС, Π½ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅


ПослСднСС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, каТущССся бСссмыслСнным, примСняСтся Π² послСднСй строкС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° "истинного" значСния ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ модуля. О модулях Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказано Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 13.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Perl ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² свободном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΡΠΏΠ»ΠΎΡˆΠ½Ρ‹ΠΌ тСкстом, вставляя для удобочитаСмости ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Ρ€ΠΌΠ°ΠΌΠΈ ΠΈ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ любоС количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов (whitespace) Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π΅Π», символ табуляции ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки. По ТСланию Π°Π²Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΈΠ»ΠΈ послС Ρ‚Π΅Ρ€ΠΌΠ° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС. МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅:


$count=0;$count++;$result='Π˜Ρ‚ΠΎΠ³ΠΎ='.$count."\n";1;