┬ Perl ≡σαδΦτεΓαφ ∞σ⌡αφΦτ∞ ∞εΣ≤δσΘ. ╠εΣ≤δⁿ ²≥ε π≡≤∩∩α ∩εΣ∩≡επ≡α∞∞ Φ ∩σ≡σ∞σφφ√⌡ εß√≈φε ΓΩδ■≈σφφ√⌡ Γ εΣΦφ ⌠αΘδ. ┬φ≤≥≡Φ εΣφεπε ∞εΣ≤δ ∞εµφε ε∩≡σΣσδΦ≥ⁿ Σ≡≤πεΘ ∞εΣ≤δⁿ. ═α≈αδε ∞εΣ≤δ ε∩≡σΣσδ σ≥± ΣΦ≡σΩ≥ΦΓεΘ:
╩εφσ÷ ∞εΣ≤δ ²≥ε Ωεφσ÷ ßδεΩα ΦδΦ ⌠αΘδα. ├εδεΓφεΘ ∞εΣ≤δⁿ Φ∞σσ≥ ∩ε ≤∞εδ≈αφΦ■ Φ∞ main. ═α Φ∞ Γφ≤≥≡Φ ∞εΣ≤δ ∞εµφε ±±√δα≥ⁿ± , ΣεßαΓδ '::' ∩ε±δσ Φ∞σφΦ ∞εΣ≤δ .
═α∩≡Φ∞σ≡:
$main::var1 - ∩σ≡σ∞σφφα Γ πεδεΓφε∞ ∞εΣ≤δσ. ::var1 - ≥ε µσ ±α∞εσ. ╚∞ main ∞εµφε ε∩≤±Ωα≥ⁿ. $∞εΣ≤δⁿ1::var1 - ∩σ≡σ∞σφφα Γ ∞εΣ≤δσ '∞εΣ≤δⁿ1' $∞εΣ≤δⁿ1::∞εΣ≤δⁿ2::var1 - ╠εΣ≤δⁿ2 ±εΣσ≡µΦ≥± Γ ∞εΣ≤δσ 1.
╥εδⁿΩε ΦΣσφ≥Φ⌠ΦΩα≥ε≡√, φα≈Φφα■∙Φσ± ± ß≤ΩΓ√ ΦδΦ ±Φ∞Γεδα '_', ⌡≡αφ ≥± Γ ∩≡ε±≥≡αφ±≥Γσ Φ∞σφ ≥σΩ≤∙σπε ∞εΣ≤δ . ╬±≥αδⁿφ√σ ⌡≡αφ ≥± Γ ∩≡ε±≥≡αφ±≥Γσ πεδεΓφεπε ∞εΣ≤δ main. ╩≡ε∞σ ²≥επε Φ∞σφα STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC Φ SIG ≥αΩ µσ ⌡≡αφ ≥± Γ πεδεΓφε∞ ∞εΣ≤δσ.
┬±σ Φ∞σφα ∞εΣ≤δ ⌡≡αφ ≥± Γ α±±ε÷Φα≥ΦΓφε∞ ∞α±±ΦΓσ (⌡σ°σ) ± Φ∞σφσ∞ ∞εΣ≤δ , Ω Ωε≥ε≡ε∞≤ ΣεßαΓδσφ√ ±Φ∞Γεδ√ "::". ╥αΩΦ∞ εß≡ατε∞ Φ∞σφα πεδεΓφεπε ∞εΣ≤δ ⌡≡αφ ≥± Γ %main:: , ∞εΣ≤δ 'mod1' Γ %mod1:: Φ ≥.Σ. ┬√≡αµσφΦσ ΓΦΣα *Φ∞ ≤Ωατ√Γασ≥ τφα≈σφΦσ ²δσ∞σφ≥α ⌡σ°α 'Φ∞ ', ²≥ε ≤Σεßφε Σδ ε∩≡σΣσδσφΦ Ωεφ±≥αφ≥.
═α∩≡Φ∞σ≡:
*pi = \3.14159;╟Σσ±ⁿ ∩σ≡σ∞σφφα $pi - ²≥ε Ωεφ±≥αφ≥α ∩Φ, Ωε≥ε≡≤■ ≤µσ φσδⁿτ Φτ∞σφΦ≥ⁿ.
╩εφ±≥≡≤Ω≥ε≡ - ²≥ε ∩εΣ∩≡επ≡α∞∞α, Ωε≥ε≡α Γ√∩εδφ σ≥± Γ ∞ε∞σφ≥ ±ετΣαφΦ εß·σΩ≥α, α Σσ±≥≡≤Ω≥ε≡ - ≤ΣαδσφΦ εß·σΩ≥α. ─δ ∞εΣ≤δ ²≥ε ∩εΣ∩≡επ≡α∞∞√ ± Φ∞σφα∞Φ BEGIN Φ END. ╧≡Φ ε∩≡σΣσδσφΦΦ ²≥Φ⌡ ∩εΣ∩≡επ≡α∞∞ ±δεΓε sub ∞εµφε ε∩≤±Ωα≥ⁿ.
╩εφ±≥≡≤Ω≥ε≡ BEGIN Γ√∩εδφ σ≥± ±≡ατ≤ ΩαΩ ≥εδⁿΩε Γετ∞εµφε, ≥.σ. ΩαΩ ≥εδⁿΩε εφ ε∩≡σΣσδσφ, Σαµσ φσ ταΓσ≡°α ΣαδⁿφσΘ°ΦΘ ≡ατßε≡ ∩≡επ≡α∞∞√. ╠εµφε ≤Ωατα≥ⁿ φσ±ΩεδⁿΩε ßδεΩεΓ BEGIN. ╬φΦ ß≤Σ≤≥ Γ√∩εδφ ≥ⁿ± εΣΦφ τα Σ≡≤πΦ∞ Γ ∩ε≡ ΣΩσ ε∩≡σΣσδσφΦ .
─σ±≥≡≤Ω≥ε≡ END Γ√∩εδφ σ≥± ∩ε±δσΣφΦ∞ ΩαΩ ≥εδⁿΩε Γετ∞εµφε, ≥.σ. ∩≡Φ ταΓσ≡°σφΦΦ ≡αßε≥√ Φφ≥σ≡∩≡σ≥α≥ε≡α. ╠εµφε ≤Ωατα≥ⁿ φσ±ΩεδⁿΩε ßδεΩεΓ END, ∩≡Φ ²≥ε∞ εφΦ ß≤Σ≤≥ Γ√∩εδφ ≥ⁿ± Γ εß≡α≥φε∞ ε∩≡σΣσδσφΦ■ ∩ε≡ ΣΩσ.
┬ Perl φσ≥ ±∩σ÷Φαδⁿφεπε ±Φφ≥αΩ±Φ±α Σδ Ωδα±±εΓ. ═ε ⌠≤φΩ÷Φεφαδⁿφε ∩εδφε÷σφφ√∞Φ Ωδα±±α∞Φ ∞επ≤≥ ß√≥ⁿ ∞εΣ≤δΦ. ╧≡Φ ²≥ε∞ ∩εΣ∩≡επ≡α∞∞√ ∞εΣ≤δ ±≥αφεΓ ≥± ∞σ≥εΣα∞Φ, α ± ∩ε∞ε∙ⁿ■ ∞α±±ΦΓα @ISA ∞εµφε ≡σαδΦτεΓα≥ⁿ ∞σ⌡αφΦτ∞ φα±δσΣεΓαφΦ Γ Ωδα±±α⌡. ┴εδσσ ∩εΣ≡εßφε Ωδα±±√ ε∩Φ±αφ√ ε≥Σσδⁿφε.
┼±δΦ Γ√ ⌡ε≥Φ≥σ ±ετΣα≥ⁿ ∞εΣ≤δⁿ ε≥Σσδⁿφ√∞ ⌠αΘδε∞ Φ Φ±∩εδⁿτεΓα≥ⁿ ΩαΩ ßΦßδΦε≥σΩ≤ ∩εΣ∩≡επ≡α∞∞, ∩≡Φ ²≥ε∞ Γ√τ√Γα≥ⁿ ∩εΣ∩≡επ≡α∞∞√ ßΦßδΦε≥σΩΦ, φσ ≤Ωατ√Γα Φ∞σφΦ ∞εΣ≤δ , Γα∞ φσεß⌡εΣΦ∞ε ε⌠ε≡∞Φ≥ⁿ ∞εΣ≤δⁿ ±δσΣ≤■∙Φ∞ εß≡ατε∞:
package Φ∞ _∞εΣ≤δ ; # ╥αΩεσ µσ ΩαΩ Φ Φ∞ ²≥επε ⌠αΘδα ßστ ≡α±°Φ≡σφΦ '.pm' require Exporter; # ╬ß τα≥σδⁿφα ±≥≡εΩα Σδ ²Ω±∩ε≡≥α Φ∞σφ @ISA = qw(Exporter); # -//- @EXPORT = qw(func1 func2) # ╧σ≡σ≈Φ±δ σ∞ Φ∞σφα ⌠≤φΩ÷ΦΘ. ┬φΦ∞αφΦσ ! φσ≥ τα∩ ≥εΘ! @EXPORT_OK = qw( $∩σ≡σ∞σφφα @∞α±±ΦΓ ); # ╙Ωατα≥ⁿ ∩≤ßδΦ≈φ√σ ∩σ≡σ∞σφφ√σ, ∞α±±ΦΓ√ Φ ≥.Σ. σ±δΦ φσεß⌡εΣΦ∞ε { # ═α≈αδε ßδεΩα ∞εΣ≤δ ..... sub func1 ........ sub func2 ........ 1; }
─αφφ√Θ ⌠αΘδ ± ≡α±°Φ≡σφΦσ∞ ".pm" Σεδµσφ ⌡≡αφΦ≥ⁿ± Γ εΣφεΘ Φτ ßΦßδΦε≥σ≈φ√⌡ ΣΦ≡σΩ≥ε≡ΦΘ Perl. ╬φΦ ∩σ≡σ≈Φ±δσφ√ Γ ∞α±±ΦΓσ @INC, εΣφα Φτ φΦ⌡ εß√≈φε "/usr/local/lib/perl/".
┬ πεδεΓφεΘ ∩≡επ≡α∞∞σ Γ√ ≤Ωατ√Γασ≥σ:
Perl ßΦßδΦε≥σΩΦ.
╤≥αφΣα≡≥φ√Θ φαßε≡ ßΦßδΦε≥σΩ εß√≈φε ∩ε±≥αΓδ σ≥± ± ΣΦ±≥≡Φß≤≥ΦΓε∞ Perl, εφΦ ≡ατΣσδ ■≥± φα pragma ßΦßδΦε≥σΩΦ (≡αßε≥α■≥ ΩαΩ ΣΦ≡σΩ≥ΦΓ√ Ωε∞∩Φδ ≥ε≡≤) Φ ±≥αφΣα≡≥φ√σ ßΦßδΦε≥σΩΦ.
─αφφ√σ ßΦßδΦε≥σΩΦ Φ±∩εδⁿτ≤■≥ ΩαΩ:
┬ ±≥αφΣα≡≥φ√Θ φαßε≡ Γ⌡εΣ ≥ ±δσΣ≤■∙Φσ pragma:
diagnostics
┬Ωδ■≈Φ≥ⁿ ≡σµΦ∞ ≡α±°Φ≡σφφεΘ ΣΦαπφε±≥ΦΩΦ.
integer
╚±∩εδⁿτεΓα≥ⁿ ÷σδε≈Φ±δσφφ≤■ α≡Φ⌠∞σ≥ΦΩ≤.
less
╨σµΦ∞ ∞ΦφΦ∞αδⁿφεΘ ταπ≡≤τΩΦ Ωε∞∩Φδ ≥ε≡α.
overload
╨σµΦ∞ ∩σ≡σε∩≡σΣσδσφΦ ε∩σ≡α≥ε≡εΓ.
sigtrap
╨σµΦ∞ ±δσµσφΦ τα ∩≡σ≡√ΓαφΦ ∞Φ.
strict
╨σµΦ∞ επ≡αφΦ≈σφφεπε Φ±∩εδⁿτεΓαφΦ "ε∩α±φ√⌡" ε∩σ≡α≥ε≡εΓ.
subs
╨σµΦ∞ εß τα≥σδⁿφεπε ΣσΩδα≡Φ≡εΓαφΦ ∩εΣ∩≡επ≡α∞∞.
AnyDBM_File
┬ετ∞εµφε±≥ⁿ ≡αßε≥√ ± ≡ατφ√∞Φ ≥Φ∩α∞Φ ßατ Σαφφ√⌡.
AutoLoader
╟απ≡≤τΩα Γ ∩α∞ ≥ⁿ ⌠≤φΩ÷ΦΘ ≥εδⁿΩε Γε Γ≡σ∞ Γ√τεΓα.
AutoSplit
╨ατΣσδΦ≥ⁿ ∞εΣ≤δⁿ Σδ αΓ≥εταπ≡≤τΩΦ.
Benchmark
└φαδΦτ ±Ωε≡ε±≥Φ Φ±∩εδφσφΦ ∩≡επ≡α∞∞√.
Carp
╧≡σΣ≤∩≡σµΣσφΦ εß ε°ΦßΩα⌡.
Config
─ε±≥≤∩ Ω Ωεφ⌠Φπ≤≡α÷ΦΦ Perl.
Cwd
╧εδ≤≈Φ≥ⁿ Φ∞ ≥σΩ≤∙σΘ ≡αßε≈σΘ ΣΦ≡σΩ≥ε≡ΦΦ.
DB_File
╨αßε≥α ± ßατεΘ Σαφφ√⌡ ⌠ε≡∞α≥α Berkley DB.
Devel::SelfStubber
╨σµΦ∞ ε≥δαΣΩΦ αΓ≥εταπ≡≤τΩΦ.
DynaLoader
─Φφα∞Φ≈σ±Ωα ταπ≡≤τΩα ßΦßδΦε≥σΩ C.
English
╚±∩εδⁿτεΓα≥ⁿ ΣδΦφφ√σ Φ∞σφα Γ±≥≡εσφφ√⌡ ∩σ≡σ∞σφφ√⌡.
Env
╚∞∩ε≡≥Φ≡εΓα≥ⁿ Φ∞σφα ∩σ≡σ∞σφφ√⌡ εΩ≡≤µσφΦ
Exporter
╬ßσ±∩σ≈ΦΓασ≥ ²Ω±∩ε≡≥/Φ∞∩ε≡≥ Σδ ∞εΣ≤δσΘ.
ExtUtils::LibList
╬∩≡σΣσδ σ≥ Φ±∩εδⁿτ≤σ∞√σ ßΦßδΦε≥σΩΦ.
ExtUtils::MakeMaker
╤ετΣασ≥ ⌠αΘδ ∩≡εσΩ≥α Makefile
ExtUtils::Manifest
╧≡επ≡α∞∞√ Σδ ±ετΣαφΦ Φ ∩≡εΓσ≡ΩΦ ⌠αΘδα MANIFEST
ExtUtils::Mkbootstrap
╧≡Φ∞σφσφΦσ ⌠αΘδα φα≈αδⁿφεΘ ταπ≡≤τΩΦ Σδ DynaLoader.
Fcntl
╬∩≡σΣσδσφΦ ΩαΩ Φ Γ ╤ Fcntl.h
File::Basename
╤Φφ≥αΩ±Φ≈σ±ΩΦΘ ≡ατßε≡ ±∩σ÷Φ⌠ΦΩα÷ΦΦ ⌠αΘδα.
File::CheckTree
┴√±≥≡√Θ ∩≡ε⌡εΣ ∩ε ΣΦ≡σΩ≥ε≡Φ ∞ ΣΦ±Ωα.
File::Find
┴√±≥≡√Θ ∩εΦ±Ω ⌠αΘδεΓ ∩ε ΣΦ≡σΩ≥ε≡Φ ∞.
FileHandle
╬ßσ±∩σ≈ΦΓασ≥ εß·σΩ≥φ√Θ ∞σ≥εΣ Σε±≥≤∩α Ω ≤Ωατα≥σδ ∞ ⌠αΘδεΓ.
File::Path
╤ετΣαφΦσ/≤ΣαδσφΦσ ΣΦ≡σΩ≥ε≡ΦΘ.
Getopt::Long
╨α±°Φ≡σφφα εß≡αßε≥Ωα ε∩÷ΦΘ.
Getopt::Std
╤≥αφΣα≡≥φα εß≡αßε≥Ωα ε∩÷ΦΘ.
I18N::Collate
╤≡αΓφσφΦσ ±Φ∞ΓεδεΓ δεΩαδⁿφεΘ ΩεΣΦ≡εΓΩΦ.
IPC::Open2
╠σµ∩≡ε÷σ±±ε≡φ√Θ εß∞σφ ∩ε ≈≥σφΦ■ Φ τα∩Φ±Φ.
IPC::Open3
╠σµ∩≡ε÷σ±±ε≡φ√Θ εß∞σφ ∩ε ≈≥σφΦ■, τα∩Φ±Φ, Φ εß≡αßε≥ΩΦ ε°ΦßεΩ.
Net::Ping
╥σ±≥ Σε±≥≤∩α Ω ⌡ε±≥≤.
POSIX
╤≥αφΣα≡≥φ√Θ Φφ≥σ≡⌠σΘ± ∩ε IEEE Std 1003.1
SelfLoader
╟απ≡≤τΩα ⌠≤φΩ÷ΦΘ ≥εδⁿΩε ∩ε Γ√τεΓ≤.
Socket
╬∩≡σΣσδσφΦσ ±≥≡≤Ω≥≤≡ Φ Ωεφ±≥αφ≥ ΩαΩ Φ Γ ╤ socket.h
Test::Harness
╤≥αφΣα≡≥φ√Θ ≥σ±≥ ± ±≥α≥Φ±≥ΦΩεΘ.
Text::Abbrev
╤ετΣαφΦσ ≥αßδΦ÷√ ±εΩ≡α∙σφΦΘ ∩ε ±∩Φ±Ω≤.
╧εΣ≡εßφεσ ε∩Φ±αφΦσ ΩαµΣεΘ ßΦßδΦε≥σΩΦ τα∩Φ±αφε Γ ±α∞ε∞ ⌠αΘδσ.
╧≡επ≡α∞∞Φ±≥√ Γ±σπε ∞Φ≡α, ≡αßε≥α■∙Φσ ± Perl, ±ετΣαδΦ εß∙σΣε±≥≤∩φ≤■ ßΦßδΦε≥σΩ≤ ∞εΣ≤δσΘ CPAN. ╬φα Σε±≥≤∩φα ≈σ≡στ ╚φ≥σ≡φσ≥ Φ ±εΣσ≡µΦ≥ επ≡ε∞φεσ ΩεδΦ≈σ±≥Γε ≡ατδΦ≈φ√⌡ ∩ε φατφα≈σφΦ■ ∞εΣ≤δσΘ. ╩ φΦ∞ ε≥φε± ≥± ΣεΩ≤∞σφ≥α≥ε≡√, ±Φ±≥σ∞φ√σ Φφ≥σ≡⌠σΘ±√, Φφ≥σ≡⌠σΘ±√ ≡αßε≥√ ± ßατα∞Φ Σαφφ√⌡, ≡αßε≥α Γ ±σ≥Φ, ± ⌠αΘδα∞Φ, ╚φ≥σ≡φσ≥-ß≡ε≤τσ≡√, ±Φ±≥σ∞√ ∩εΦ±Ωα, επ≡ε∞φεσ ΩεδΦ≈σ±≥Γε CGI ±Ω≡Φ∩≥εΓ Σδ Web ±σ≡Γσ≡εΓ Φ ∞φεπεσ-∞φεπεσ Σ≡≤πεσ. ╤∩Φ±εΩ φσΩε≥ε≡√⌡ CPAN ±σ≡Γσ≡εΓ Γ√ ∞εµσ≥σ φαΘ≥Φ Γ ∩≡ΦδεµσφΦΦ.