┬±≥≡εσφφ√σ ∩σ≡σ∞σφφ√σ Perl.

╬∩Φ±αφφ√σ Γ ΣαφφεΘ πδαΓσ ∩σ≡σ∞σφφ√σ Φ∞σ■≥ Γ Perl ±∩σ÷Φαδⁿφ√σ τφα≈σφΦ . ╬φΦ εßετφα≈α■≥±  φσ±ΩεδⁿΩε φσ∩≡ΦΓ√≈φε Σδ  "πδατα" ∩≡επ≡α∞∞Φ±≥εΓ, ≥.Ω. ±ε±≥ε ≥ εß√≈φε ≥εδⁿΩε Φτ ΣΓ≤⌡ ±Φ∞ΓεδεΓ, ∩≡Φ≈σ∞ ∩σ≡Γ√Θ ²≥ε '$' ±Φ∞Γεδ, ± Ωε≥ε≡επε φα≈Φφα■≥±  Φ∞σφα Γ±σ⌡ ∩σ≡σ∞σφφ√⌡, Φ ∩≡εΦτΓεδⁿφ√Θ ≈α±≥ε φσ ß≤ΩΓσφφε-÷Φ⌠≡εΓεΘ ±Φ∞Γεδ. ┼±δΦ Γ√ ⌡ε≥Φ≥σ ∩εδⁿτεΓα≥ⁿ±  Φ⌡ "φε≡∞αδⁿφ√∞Φ" ß≤ΩΓσφφ√∞Φ ±ΦφεφΦ∞α∞Φ, ≥ε Γα∞ φ≤µφε ≤Ωατα≥ⁿ Γ φα≈αδσ ∩≡επ≡α∞∞√:

	use English;

╥ε≈φε ≥αΩ µσ σ±δΦ Γ√ τα⌡ε≥Φ≥σ ∩εδⁿτεΓα≥ⁿ±  ∩σ≡σ∞σφφ√∞Φ Φ ∞σ≥εΣα∞Φ ≥σΩ≤∙σπε ≤Ωατα≥σδ  ⌠αΘδεΓ Γ√ ∞εµσ≥σ φα∩Φ±α≥ⁿ:

	use FileHandle;
∩ε±δσ ²≥επε ∞εµφε ∩≡ε±≥ε ∩Φ±α≥ⁿ:
	∞σ≥εΣ ≤Ωατα≥σδⁿ Γ√≡αµσφΦσ
ΦδΦ
	≤Ωατα≥σδⁿ -> ∞σ≥εΣ(Γ√≡αµσφΦσ)

═Φµσ ∩≡ΦΓεΣ ≥±  Φ∞σφα ΩαΩ Γ Ωε≡ε≥ΩεΘ, ≥αΩ Φ Γ ΣδΦφφεΘ (±δεΓσ±φεΘ) ⌠ε≡∞σ. ═σΩε≥ε≡√σ Φτ Γ±≥≡εσφφ√⌡ ∩σ≡σ∞σφφ√⌡ Φ∞σ■≥ Σε±≥≤∩ ≥εδⁿΩε φα ≈≥σφΦσ, ∩ε²≥ε∞≤ Φτ∞σφΦ≥ⁿ Φ⌡ τφα≈σφΦσ ∩≡ε±≥ε φσΓετ∞εµφε.

$_
$ARG

╧σ≡σ∞σφφα  - ∩ε ≤∞εδ≈αφΦ■ Σδ  ε∩σ≡α≥ε≡εΓ ΓΓεΣα Φ ∩εΦ±Ωα. ╥ε σ±≥ⁿ σ±δΦ Γ Ωα≈σ±≥Γσ α≡π≤∞σφ≥α φσ ≤Ωαταφα φΦΩαΩα  ∩σ≡σ∞σφφα , ≥ε Φ±∩εδⁿτ≤σ≥±  Φ∞σφφε ²≥α.

$÷Φ⌠≡α

╤εΣσ≡µΦ≥ φαΘΣσφφ≤■ ∩εΣ±≥≡εΩ≤ Γ ∩ε±δσΣφσ∞ ∩εΦ±Ωσ, ΩεπΣα °αßδεφ ±εΣσ≡µΦ≥ ∞σ≥α±Φ∞Γεδ√ Γ Ω≡≤πδ√⌡ ±ΩεßΩα⌡. ╓Φ⌠≡α Γ Σαφφε∞ ±δ≤≈ασ, ²≥ε φε∞σ≡ ±ΩεßεΩ. ╧σ≡Γα  ∩εΣ±≥≡εΩα Φ∞σσ≥ φε∞σ≡ 1.

$&
$MATCH

═αΘΣσφφα  ∩εΣ±≥≡εΩα Γ ∩ε±δσΣφσ∞ ∩εΦ±Ωσ ∩ε °αßδεφ≤.

$`

╧εΣ±≥≡εΩα, ∩≡σΣ°σ±≥Γ≤■∙α  φαΘΣσφφεΘ ∩εΣ±≥≡εΩσ.

$'
$POSTMATCH

╧εΣ±≥≡εΩα, ∩ε±δσΣ≤■∙α  τα φαΘΣσφφεΘ ∩εΣ±≥≡εΩεΘ.

$+
$LAST_PAREN_MATCH

╧εΣ±≥≡εΩα, φαΘΣσφφα  Γ ∩εΦ±Ωσ ± Γ√ßε≡ε∞ ∩ε "ΦδΦ".

$*
$MULTILINE_MATCHING

┼±δΦ τφα≈σφΦσ ²≥εΘ ∩σ≡σ∞σφφεΘ ≤±≥αφεΓΦ≥ⁿ ≡αΓφ√∞ 1, ≥ε ∩σ≡σ∞σφφα , Γ Ωε≥ε≡εΘ ε±≤∙σ±≥Γδ σ≥±  ∩εΦ±Ω, ß≤Σσ≥ ±≈Φ≥α≥ⁿ±  ∞φεπε±≥≡ε≈φεΘ, ≥.σ. ±εΣσ≡µα∙σΘ ±Φ∞Γεδ√ '\n' - ∩σ≡σΓεΣ ±≥≡εΩΦ. ┼±δΦ τφα≈σφΦσ ≡αΓφε 0, ≥ε ∩σ≡σ∞σφφα  ±≈Φ≥ασ≥±  εΣφε±≥≡ε≈φεΘ. ┬ Perl Γσ≡±ΦΦ 5 Φ Γ√°σ φσ ≡σΩε∞σφΣ≤σ≥±  Φ±∩εδⁿτεΓα≥ⁿ ²≥≤ ∩σ≡σ∞σφφ≤■.

$.
$INPUT_LINE_NUMBER
$NR

═ε∞σ≡ ∩≡ε≈Φ≥αφφεΘ ±≥≡εΩΦ ∩ε±δσΣφσπε ε∩σ≡α≥ε≡α ΓΓεΣα. ╟αΩ≡√≥Φσ ⌠αΘδα Γ√τ√Γασ≥ ε≈Φ±≥Ω≤ τφα≈σφΦ  ²≥εΘ ∩σ≡σ∞σφφεΘ.

$/
$RS
$INPUT_RECORD_SEPARATOR

╤Φ∞Γεδ - ∩≡ΦτφαΩ Ωεφ÷α Γ⌡εΣφεΘ ±≥≡εΩΦ. ╧ε ≤∞εδ≈αφΦ■ ²≥ε '\n'

$|
$OUTPUT_AUTOFLUSH

┼±δΦ ∩≡Φ±ΓεΦ≥ⁿ ²≥εΘ ∩σ≡σ∞σφφεΘ φσφ≤δσΓεσ τφα≈σφΦσ, ≥ε ß≤Σσ≥ ±ß≡ε± ß≤⌠σ≡α Γ√ΓεΣα ∩ε±δσ ΩαµΣεΘ ε∩σ≡α÷ΦΦ Γ√ΓεΣα. ╟φα≈σφΦσ ∩ε ≤∞εδ≈αφΦ■ - 0

$,
$OFS
$OUTPUT_FIELD_SEPARATOR

╤Φ∞Γεδ, ΣεßαΓδ σ∞√Θ ε∩σ≡α≥ε≡ε∞ print ∩ε±δσ ΩαµΣεπε ²δσ∞σφ≥α Φτ ±∩Φ±Ωα ∩α≡α∞σ≥≡εΓ.

$\
$ORS
$OUTPUT_RECORD_SEPARATOR

╤Φ∞Γεδ, ΣεßαΓδ σ∞√Θ print ∩ε±δσ Γ√ΓεΣα Γ±σ⌡ ∩α≡α∞σ≥≡εΓ.

$"
$LIST_SEPARATOR

└φαδεπΦ≈σφ "$,", φε ΣεßαΓδ σ≥±  ∩ε±δσ ΩαµΣεπε ²δσ∞σφ≥α ∞α±±ΦΓα, ≤Ωαταφφεπε Γ "....".

$;
$SUBSEP
$SUBSCRIPT_SEPARATOR

╤Φ∞Γεδ - ≡ατΣσδΦ≥σδⁿ Σδ  ²∞≤δ ÷ΦΦ ∞φεπε∞σ≡φ√⌡ ∞α±±ΦΓεΓ Γ ⌡σ° ∞α±±ΦΓα⌡. ╧ε ≤∞εδ≈αφΦ■ '\034'.

$#
$OFMT

╘ε≡∞α≥ ∩ε ≤∞εδ≈αφΦ■ Σδ  Γ√ΓεΣα ≈Φ±σδ.

$%
$FORMAT_PAGE_NUMBER

╘ε≡∞α≥ ∩ε ≤∞εδ≈αφΦ■ Σδ  Γ√ΓεΣα φε∞σ≡εΓ ±≥≡αφΦ÷.

$=
$FORMAT_LINES_PER_PAGE

─δΦφα εΣφεΘ ±≥≡αφΦ÷√. ╧ε ≤∞εδ≈αφΦ■ 60 ±≥≡εΩ.

$-
$FORMAT_LINES_LEFT

╩εδΦ≈σ±≥Γε ε±≥αΓ°Φ⌡±  ±≥≡εΩ φα ±≥≡αφΦ÷σ.

$~
$FORMAT_NAME

╚∞  ⌠ε≡∞α≥α ≥σΩ≤∙σπε Γ√ΓεΣα. ╧ε ≤∞εδ≈αφΦ■ Φ∞  ≤Ωατα≥σδ .

$^
$FORMAT_TOP_NAME

╚∞  ≥σΩ≤∙σπε ⌠ε≡∞α≥α Σδ  ταπεδεΓΩα ±≥≡αφΦ÷√.

$:
$FORMAT_LINE_BREAK_CHARACTERS

╤Φ∞Γεδ√ ∩σ≡σφε±α ±≥≡εΩΦ Σδ  ∞φεπε±≥≡ε≈φ√⌡ ∩εδσΘ. ┬ ±≥≡εΩσ ⌠ε≡∞α≥α ≥αΩΦσ ∩εδ  φα≈Φφα■≥±  ±Φ∞Γεδε∞ '^'. ╧ε ≤∞εδ≈αφΦ■ '\n-'.

$^L
$FORMAT_FORMFEED

╤Φ∞Γεδ ∩σ≡σΓεΣα ⌠ε≡∞α≥α ( ±∞σφ√ δΦ±≥α). ╧ε ≤∞εδ≈αφΦ■ '\f'.

$^A
$ACCUMULATOR

╥σΩ≤∙σσ τφα≈σφΦσ αΩΩ≤∞≤δ ≥ε≡α ⌠≤φΩ÷ΦΦ write() Σδ  format(). ╟φα≈σφΦσ ²≥εΘ ∩σ≡σ∞σφφεΘ ∞εµφε ≤ΓΦΣσ≥ⁿ ≥εδⁿΩε ∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ⌠≤φΩ÷ΦΦ formline(), ≥.Ω. write() ε≈Φ∙ασ≥ σσ ∩ε±δσ ΩαµΣεπε Γ√ΓεΣα.

$?
$CHILD_ERROR

─αφφα  ∩σ≡σ∞σφφα  ±εΣσ≡µΦ≥ ±≥α≥≤± ταΓσ≡°σφΦ  ≥αΩΦ⌡ ∩≡ε÷σ±±εΓ ΩαΩ: ταΩ≡√≥Φσ pipe, ταΓσ≡°σφΦσ ⌠≤φΩ÷ΦΘ system(), wait() Φ `...`.

$!
$ERRNO $OS_ERROR

┬ ≈Φ±δεΓε∞ Ωεφ≥σΩ±≥σ ΓετΓ≡α∙ασ≥ ΩεΣ ε°ΦßΩΦ errno. ┬ ±≥≡εΩεΓε∞ - ±≥≡εΩ≤ ±εεß∙σφΦ  εß ε°ΦßΩσ. ╠εµφε ∩≡Φφ≤ΣΦ≥σδⁿφε ∩≡Φ±ΓεΦ≥ⁿ ²≥εΘ ∩σ≡σ∞σφφεΘ ΩεΣ ε°ΦßΩΦ, ≈≥ε ß√ ∩εδ≤≈Φ≥ⁿ ±Φ±≥σ∞φεσ ±εεß∙σφΦσ Σδ  Σαφφεπε ΩεΣα ΦδΦ ≤±≥αφεΓΦ≥ⁿ ΩεΣ ταΓσ≡°σφΦ  Σδ  ⌠≤φΩ÷ΦΦ die().

$@
$EVAL_ERROR

╤εεß∙σφΦσ εß ε°ΦßΩσ ∩ε±δσΣφσΘ Ωε∞αφΣ√ eval().

$$
$PID
$PROCESS_ID

═ε∞σ≡ ≥σΩ≤∙σπε ∩≡ε÷σ±±α.

$<
$UID
$REAL_USER_ID

╨σαδⁿφ√Θ UID ≥σΩ≤∙σπε ∩≡ε÷σ±±α.

$>
$EUID
$EFFECTIVE_USER_ID

▌⌠⌠σΩ≥ΦΓφ√Θ UID ≥σΩ≤∙σπε ∩≡ε÷σ±±α.

$( $GID
$REAL_GROUP_ID

╨σαδⁿφ√Θ GID ≥σΩ≤∙σπε ∩≡ε÷σ±±α.

$)
$EGID
$EFFECTIVE_GROUP_ID

▌⌠⌠σΩ≥ΦΓφ√Θ GID ≥σΩ≤∙σπε ∩≡ε÷σ±±α.

$O
$PROGRAM_NAME

╚∞  ⌠αΘδα ∩≡επ≡α∞∞√. ┼±δΦ ²≥εΘ ∩σ≡σ∞σφφεΘ ∩≡Φ±ΓεΦ≥ⁿ ΩαΩεσ-φΦß≤Σⁿ τφα≈σφΦσ, ≥ε σπε ∞εµφε ΓΦΣσ≥ⁿ Γ Ωε∞αφΣσ ps, ≈≥ε ≤Σεßφε Σδ  Ωεφ≥≡εδ  τα ±ε±≥ε φΦσ∞ ∩≡επ≡α∞∞√.

$[

═ε∞σ≡ ∩σ≡Γεπε ²δσ∞σφ≥α ∞α±±ΦΓα ΦδΦ ±Φ∞Γεδα ±≥≡εΩΦ. ╟φα≈σφΦσ ∩ε ≤∞εδ≈αφΦ■ - 0.

$]
$PERL_VERSION

╤≥≡εΩα - ±εεß∙σφΦσ Γσ≡±ΦΦ Perl. ╧σ≈α≥ασ≥±  ∩ε Ωε∞αφΣσ perl -v ╧≡Φ∞σφ σ≥±  Γ ∩≡επ≡α∞∞σ Σδ  ε∩≡σΣσδσφΦ  ≡αßε≈σΘ Γσ≡±ΦΦ Perl. ┬ ≈Φ±δεΓε∞ Ωεφ≥σΩ±≥σ ²≥ε φε∞σ≡ Γσ≡±ΦΦ ∩δ■± φε∞σ≡ ∞εΣΦ⌠ΦΩα÷ΦΦ / 1000.

$^D
$DEBUGGING

╥σΩ≤∙σσ τφα≈σφΦσ Ωδ■≈α ε≥δαΣΩΦ '-D'.

$^F
$SYSTEM_FD_MAX

═ε∞σ≡ ∞αΩ±Φ∞αδⁿφεπε ±Φ±≥σ∞φεπε ε∩Φ±α≥σδ  ⌠αΘδεΓ (system file descriptor). ╬ß√≈φε ²≥ε 2.

$^I
$INPLACE_EDIT

╥σΩ≤∙σσ τφα≈σφΦσ inplace-edit Γετ∞εµφε±≥Φ. ─δ  ε≥Ωδ■≈σφΦ  Φ±∩εδⁿτ≤Θ≥σ undef.

$^P
$PERLDB

┬φ≤≥≡σφφΦΘ ⌠δαπ ε≥δαΣΩΦ. ╧≡Φ∞σφ σ≥±  Σδ  ≥επε, ≈≥εß√ ε≥δαΣ≈ΦΩ φσ ε≥±δσµΦΓαδ ±α∞επε ±σß .

$^T
$BASETIME

┬≡σ∞  Γ ±σΩ≤φΣα⌡ ± φα≈αδα 1970 πεΣα ±≥α≡≥α ≥σΩ≤∙σΘ ∩≡επ≡α∞∞√.

$^W
$WARNING

╟φα≈σφΦσ ⌠δαπα '-w'. true -σ±δΦ ΓΩδ■≈σφε Φ false - Γ√Ωδ■≈σφε.

$^X
$EXECUTABLE_NAME

╩ε∞αφΣα τα∩≤±Ωα Perl. └φαδεπΦ≈φε argv[0] Γ ╤.

$ARGV

╚∞  ≥σΩ≤∙σπε ⌠αΘδα, ≈Φ≥ασ∞επε ε∩σ≡α≥ε≡ε∞ '<>'.

@ARGV

╠α±±ΦΓ ∩α≡α∞σ≥≡εΓ ±≥≡εΩΦ τα∩≤±Ωα ∩≡επ≡α∞∞√. ┬φΦ∞αφΦσ! @#ARGV - ∞σφⁿ°σ ΩεδΦ≈σ±≥Γα ∩α≡α∞σ≥≡εΓ φα 1, ≥.Ω. $ARGV[0] ²≥ε ∩σ≡Γ√Θ ∩α≡α∞σ≥≡ (φσ Φ∞  ∩≡επ≡α∞∞√).

@INC

╤∩Φ±εΩ ΣΦ≡σΩ≥ε≡ΦΘ ΣΦ±Ωα, Ωε≥ε≡√σ ∩≡ε±∞α≥≡ΦΓασ≥ Perl Σδ  Γ√∩εδφσφΦ  Ωε∞αφΣ do, require ΦδΦ use.

%INC

▌≥ε≥ ⌡σ° ±εΣσ≡µΦ≥ Φ∞σφα ΣΦ≡σΩ≥ε≡ΦΘ Σδ  Φ∞σφ Φ±∩εδⁿτεΓαφφ√⌡ ⌠αΘδεΓ Ωε∞αφΣα∞Φ do ΦδΦ require. ╩δ■≈ - Φ∞  ⌠αΘδα, α τφα≈σφΦσ - ΣΦ≡σΩ≥ε≡Φ .

$ENV{Γ√≡αµσφΦσ}

╒σ° %ENV ±εΣσ≡µΦ≥ τφα≈σφΦ  ∩σ≡σ∞σφφ√⌡ εΩ≡≤µσφΦ . ╚τ∞σφσφΦσ ²≥Φ⌡ τφα≈σφΦΘ Γ√τ√Γασ≥ Φτ∞σφσφΦσ εΩ≡≤µσφΦ  Σδ  ∩≡ε÷σ±±εΓ ∩ε≥ε∞ΩεΓ.

$SIG{Γ√≡αµσφΦσ}

╒σ° %SIG ±εΣσ≡µΦ≥ Φ∞σφα ∩εΣ∩≡επ≡α∞∞ Σδ  ≥αΩΦ⌡ ±Φ±≥σ∞φ√⌡ ±ΦπφαδεΓ ΩαΩ INT, QUIT, PIPE, ... ╟φα≈σφΦσ 'DEFAULT' - Σδ  ±Φ±≥σ∞φεΘ εß≡αßε≥ΩΦ. 'IGNORE' - Φπφε≡Φ≡εΓα≥ⁿ Σαφφ√Θ ±Φπφαδ.

[═αταΣ] [╤εΣσ≡µαφΦσ] [┬∩σ≡σΣ]