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

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

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

Π’ прСфиксной Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ выраТСния Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° послС измСнСния, Π° Π² постфиксной - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π΄ΠΎ измСнСния. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ примСнСния прСфиксной ΠΈ постфиксной Ρ„ΠΎΡ€ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


$n = 25; # Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $n $x1 = $n++; # Π² $x1 сохранСно 25, Π·Π°Ρ‚Π΅ΠΌ Π² $n стало 26 $x2 = ++$n; # Π² $n стало 27 ΠΈ ΠΎΠ½ΠΎ сохранСно Π² $x2 $x3 = --$n; # Π² $n стало 26 ΠΈ ΠΎΠ½ΠΎ сохранСно Π² $x3 $x4 = $n--; # Π² $x4 сохранСно 26, Π·Π°Ρ‚Π΅ΠΌ Π² $n стало 25 --$n; # ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† $n ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎΡΡŒ Π΄ΠΎ 24


Π₯отя Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠ΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, часто ΠΎΠ½ΠΎ отбрасываСтся, Π° сама опСрация примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎ являСтся ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктом Π΅Π΅ выполнСния. НапримСр:


++$done_count; # ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счСтчик ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… строк $left_count--; # ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ счСтчик ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ строк


Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π² Perl эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ цСлочислСнным, Π½ΠΎ ΠΈ ΠΊ Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ значСниям ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:


$f = 2.5; # Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $f $f++; # Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² $f стало 3.5


ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π²Ρ‚ΠΎΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈ Π°Π²Ρ‚ΠΎΠ΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Π±ΠΎΠ»Π΅Π΅ СстСствСнны, Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках эквивалСнтныС выраТСния Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ $n = $n + 1 (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ ΡˆΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠ²). К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹.

Π’ Perl Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус ΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс, примСняСмыС ΠΊ числовым ΠΈ строковым значСниям. НапримСр, Ссли Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $n содСрТится число, Π² $s - строка, Π° Π² $x - любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ ΠΏΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊ:


- ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус ($n = -$n; смСнит Π·Π½Π°ΠΊ числа Π² $n Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΉ) - ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ минус ($s = -$s; Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ строкой Π² $s символ '-') + ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс ($x = +$x; Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ значСния любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ)


ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ плюс Π½Π΅ измСняСт значСния выраТСния, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² ситуации, ΠΊΠΎΠ³Π΄Π° синтаксис Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия раздСлитСля, Π° ΠΏΡ€ΠΎΠ±Π΅Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. НапримСр, ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ выраТСния для вычислСния Π erl Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

К ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌ опСрациям Ρ‚Π°ΠΊΠΆΠ΅ относится опСрация Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. МногиС встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ языка Perl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… лСкциях, Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ опСрациями. Они ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ΄Π΅ с ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΌΠΈ скобками ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡƒΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· скобок: sin($x) ΠΈΠ»ΠΈ sin $x. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.

Π’Π°Π±Π»ΠΈΡ†Π° 3.1. Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡΠ Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹ΠΉ)abs $xΠ°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ $xabs -2525atan2 $y, $xарктангСнс y/x Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΎΡ‚ -Ρ€ Π΄ΠΎ + Ρ€atan2 25,51.37340077cos $xкосинус $xcos 250.99120281exp $xΠ²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ e Π² стСпСни $xexp 0.251.28402542int $xцСлая Ρ‡Π°ΡΡ‚ΡŒ ΠΎΡ‚ $xint 25.2525log $xΠ½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ $xlog 253.21887582randслучайноС Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число ΠΎΡ‚ 0 Π΄ΠΎ 1rand0.97265625rand $xслучайноС число ΠΎΡ‚ 0 Π΄ΠΎ $xrand 2523.0430603srandΠ½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для randsrand1sin $xсинус $xsin 25-0.1323518sqrt $xΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· $xsqrt 255timeчисло сСкунд с Π½Π°Ρ‡Π°Π»Π° отсчСта (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с 01.01.1970)time1139738006localtimeтСкущая ΠΈΠ»ΠΈ указанная Π΄Π°Ρ‚Π° ΠΈ врСмяlocaltimeSun Feb 12 14:55:25 2006

НавСрноС, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ print, Π²Ρ‹Π²ΠΎΠ΄ΡΡ‰ΡƒΡŽ список своих ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° консоль), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


print "ВСрсия Perl=$]"; # вывСсти Π½ΠΎΠΌΠ΅Ρ€ вСрсии Perl print 2474.918 / 381.65; # ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ частноС ΠΎΡ‚ дСлСния print "Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ количСство чисСл: "; # Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ запрос


ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± опСрациях Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 9, Π³Π΄Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² - другая Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π’ Perl Π½Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² для обозначСния истинного ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ³ΠΎ значСния, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ true ΠΈ false Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выраТСния опрСдСляСтся логичСским контСкстом. ЛогичСский (ΠΈΠ»ΠΈ Π±ΡƒΠ»Π΅Π²) контСкст являСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ скалярного строкового, поэтому Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния прСобразуСтся ΠΊ строкС. Если послС прСобразования выраТСния получаСтся пустая строка (Π½Π΅ содСрТащая Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа) Π»ΠΈΠ±ΠΎ строка, состоящая ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа '0' (Ρ†ΠΈΡ„Ρ€Ρ‹ "Π½ΡƒΠ»ΡŒ"), Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния считаСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ. ЗначСния всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ истинными. Иногда Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния истинности ΠΈΠ»ΠΈ лоТности выраТСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


'' ΠΈΠ»ΠΈ "" пустая строка, поэтому - "лоТь" 0 ΠΈΠ»ΠΈ 0.0 0 прСобразуСтся Π² '0', поэтому - "лоТь" +0 ΠΈΠ»ΠΈ -0 0 прСобразуСтся Π² '0', поэтому - "лоТь" 5-(3+2) Ρ€Π°Π²Π½ΠΎ 0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСобразуСтся Π² '0', поэтому - "лоТь" undef Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ '', поэтому - "лоТь" '1' ΠΈΠ»ΠΈ 'false' Π½Π΅ пустая строка ΠΈ Π½Π΅ '0', поэтому - "истина" '00' ΠΈΠ»ΠΈ '0.0' Π½Π΅ пустая строка ΠΈ Π½Π΅ '0', поэтому - "истина" '-0' ΠΈΠ»ΠΈ '+0' Π½Π΅ пустая строка ΠΈ Π½Π΅ '0', поэтому - "истина" '0 but true' Π½Π΅ пустая строка, Π·Π½Π°Ρ‡ΠΈΡ‚ - "истина"


Π˜ΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ значСния выраТСния вычисляСтся для логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния.

Π’ Perl Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для сравнСния чисСл ΠΈ строк. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния чисСл ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с обозначСниями ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, основанных Π½Π° синтаксисС языка C. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $n хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 25:


== Ρ€Π°Π²Π½ΠΎ (Π½Π΅ ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ с присваиваниСм (=), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n == 4 Π»ΠΎΠΆΠ½ΠΎ) != Π½Π΅ Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n != 8*2 истинно) < мСньшС, Ρ‡Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n < '16.08' Π»ΠΎΠΆΠ½ΠΎ) > большС, Ρ‡Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n > 9 истинно) мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n <= 26 истинно) большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n >= 24 истинно) <=> числовоС сравнСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $n <=> 64 Π²Π΅Ρ€Π½Π΅Ρ‚ -1)


ПослСдняя опСрация числового сравнСния <=> (называСмая Π½Π° программистском ΠΆΠ°Ρ€Π³ΠΎΠ½Π΅ spaceship - "космичСский ΠΊΠΎΡ€Π°Π±Π»ΡŒ, Ρ‡Π΅Π»Π½ΠΎΠΊ"), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1, 0 ΠΈΠ»ΠΈ 1, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ соотвСтствСнно мСньшС, Ρ€Π°Π²Π΅Π½ ΠΈΠ»ΠΈ большС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. ВсС эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ числовой контСкст, ΠΈ строковыС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ сравнСниСм ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΊ числам. НапримСр, сравнСния 123 == ' 123' ΠΈΠ»ΠΈ '+123' == '123x' ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΊ 123 == 123. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пустая строка считаСтся Ρ€Π°Π²Π½ΠΎΠΉ Π½ΡƒΠ»ΡŽ.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния строк ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° обозначСния сравнСний Π² языкС программирования Fortran. Они ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° сравниваСмыС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ строки. ΠŸΡ€ΠΈ сравнСнии строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ учитываСтся ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов: Ρ‡Π΅ΠΌ Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚Π΅ΠΌ мСньшС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $s хранится 'a':


eq Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s eq 'a' истинно) ne Π½Π΅ Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s ne 'Y' истинно) lt мСньшС, Ρ‡Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s lt 'z' истинно) gt большС, Ρ‡Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s gt '9' истинно) le мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s le 'b' истинно) ge большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s ge 'Z' истинно) cmp строковоС сравнСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $s cmp 'Z' Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 1)


ПослСдняя опСрация строкового сравнСния cmp, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ опСрация числового сравнСния <=>, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: -1, 0 ΠΈΠ»ΠΈ 1, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ соотвСтствСнно мСньшС, Ρ€Π°Π²Π΅Π½ ΠΈΠ»ΠΈ большС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ. ΠŸΡ€ΠΈ сравнСнии строк ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡ… Π΄Π»ΠΈΠ½Π° ΠΈ содСрТащиСся Π² Π½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹: Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ посимвольно ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ строки ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния строк ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ строковый контСкст, поэтому ΠΈΡ… числовыС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΊ строкам. ΠŸΡ€ΠΈ этом строковоС сравнСниС чисСл Π΄Π°Π΅Ρ‚ своСобразный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, '20' большС '100', ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ '2' находится Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ '1'. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° частичноС совпадСниС строк, которая часто трСбуСтся ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ тСкста, выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² Π»Π΅ΠΊΡ†ΠΈΠΈ 8.