╬∩Φ±αφφ√σ Γ ΣαφφεΘ πδαΓσ ∩σ≡σ∞σφφ√σ Φ∞σ■≥ Γ 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' - Φπφε≡Φ≡εΓα≥ⁿ Σαφφ√Θ ±Φπφαδ.