╬≥ ∩≡ε±≥επε Ω ±δεµφε∞≤

╧≡σµΣσ ≈σ∞ ∩≡Φ±≥≤∩Φ≥ⁿ Ω ∩ε±δσΣεΓα≥σδⁿφε∞≤ ετφαΩε∞δσφΦ■ ± φσ τφαΩε∞√∞ Σδ  Γα±  τ√Ωε∞, Σεδµσφ επεΓε≡Φ≥ⁿ±  Φ ±Ωατα≥ⁿ, ≈≥ε Γ±σ ∩≡Φ∞σ≡√ Σα Φ ±α∞  τ√Ω ε∩Φ±αφΦ■ Ωε≥ε≡επε ∩ε±Γ ∙σφα ²≥α ΩφΦπα ²≥ε Perl Γσ≡±ΦΦ 5.003 Σδ  ε∩σ≡α÷ΦεφφεΘ ±Φ±≥σ∞√ FreeBSD Γσ≡±ΦΦ 2.01. ╤≤∙σ±≥Γ≤■≥ ≡σαδΦτα÷ΦΦ ²≥επε  τ√Ωα Σδ  ε∩σ≡α÷Φεφφ√⌡ ±Φ±≥σ∞ OS/2 , MS-DOS Φ Windows NT φε εφΦ φσ∞φεπε ε≥±≥α■≥ ∩ε Γετ∞εµφε±≥ ∞ ε≥ ε≡ΦπΦφαδα, ≡εµΣσφφεπε Γ φσΣ≡α⌡ Unix.

╧≡Φ∞σ≡ 1.
┬ΓσΣΦ≥σ Γ ⌠αΘδ test1.pl ±δσΣ≤■∙Φσ ±≥≡εΩΦ:

		#!/usr/local/bin/perl
		# ╤εΣσ≡µΦ∞εσ ⌠αΘδα test1.pl
		print "═α°σ ┬α∞ ± ΩΦ±≥ε≈ΩεΘ!\n";
└ ≥σ∩σ≡ⁿ ∩εΣ≡εßφε ≡ατßσ≡σ∞ ΩαµΣ≤■ ±≥≡εΩ≤.
#!/usr/local/bin/perl

─αφφα  ±≥≡εΩα Σεδµφα ß√≥ⁿ ∩σ≡ΓεΘ Γ δ■ßεΘ Perl-∩≡επ≡α∞∞σ. ╬φα ≤Ωατ√Γασ≥ ±Φ±≥σ∞φε∞≤ Φφ≥σ≡∩≡σ≥α≥ε≡≤ ≈≥ε Σαφφ√Θ ⌠αΘδ - ²≥ε Perl-∩≡επ≡α∞∞α.

# ╤εΣσ≡µΦ∞εσ ⌠αΘδα test1.pl
▌≥α ±≥≡εΩα φατ√Γασ≥±  Ωε∞∞σφ≥α≡Φσ∞. ╬φα Γ±σπΣα φα≈Φφασ≥±  ±Φ∞Γεδε∞ '#' Φ ταΩαφ≈ΦΓασ≥±  ≥αΩΦ∞ εß· ±φσφΦσ∞ ≈≥ε ΩαΩ πεΓε≡Φδ ΓσδΦΩΦΘ ╒εΣµα ═α±≡σΣΣΦφ "²≥ε ≥εφΩΦΘ ⌠Φδε±ε⌠±ΩΦΘ Γε∩≡ε±", α πεΓε≡  ∩≡ε±≥√∞  τ√Ωε∞ τΣσ±ⁿ ∞εµφε ∩Φ±α≥ⁿ Γ±σ ≈≥ε ≤πεΣφε. ─αµσ ∩εµσδαφΦσ ≡≤ΩεΓεΣ±≥Γ≤. ╙µ τΣσ±ⁿ εφε ≥ε≈φε Σε φσπε φσ ΣεΘΣσ≥.

print "═α°σ ┬α∞ ± ΩΦ±≥ε≈ΩεΘ!\n";

╤α∞α  ∩ε±δσΣφ   φ≤ Φ Ωεφσ≈φε πδαΓφα . ╬φα ∩≡ε±≥ε Γ√ΓεΣΦ≥ φα ²Ω≡αφ φαΣ∩Φ±ⁿ "═α°σ ┬α∞ ± ΩΦ±≥ε≈ΩεΘ!".

╟Σσ±ⁿ ±δεΓε print - ²≥ε Ωε∞αφΣα "Γ√Γσ±≥Φ". ┬±σ ≈≥ε Γ ΩαΓ√≈Ωα⌡ - ²≥ε ±Φ∞Γεδ√, \n - ∩σ≡σΓεΣ ±≥≡εΩΦ Φ ';' - ∩≡ΦτφαΩ Ωεφ÷α Ωε∞αφΣ√. ╬φ εß τα≥σδσφ. ┬ εΣφεΘ ±≥≡εΩσ ∞εµσ≥ ß√≥ⁿ φσ±ΩεδⁿΩε Ωε∞αφΣ Φ Γ±σ εφΦ Σεδµφ√ ταΓσ≡°α≥ⁿ±  ±Φ∞Γεδε∞ ';'. ╧ε±δσ φσπε ∞εµσ≥ ß√≥ⁿ ±Φ∞Γεδ '#' - ²≥ε τφα≈Φ≥ ε±≥α≥εΩ ±≥≡εΩΦ ±≈Φ≥ασ≥±  Ωε∞∞σφ≥α≡Φσ∞.

═αΣ ²≥εΘ ±≥≡εΩεΘ αΓ≥ε≡≤ ∩≡Φ°δε±ⁿ ßεδⁿ°σ Γ±σπε ∩εδε∞α≥ⁿ πεδεΓ≤ ≥αΩ ΩαΩ Γ φσσ ∩ε±≥ε φφε δστδΦ ΩαΩΦσ ≥ε ±≥≡αφφ√σ "hello", "hello all", "╧ε±≥≡εΦ∞±  Φ ±∩α±σ∞± ", "╤≥≡εΘ φα°σ ±∩α±σφΦσ" Φ ≥. Σ. Φ ≥.∩.

┼±δΦ Γ√ φΦΩεπΣα φσ ≡αßε≥αδΦ ± Perl, ≥ε ßⁿ■±ⁿ φα ±∩ε≡ Γ 10$, ≈≥ε Σαφφα  ∩≡επ≡α∞∞α ±≡ατ≤ ≤ Γα± φσ τα≡αßε≥ασ≥! ═σ ∩ε≥ε∞≤ ≈≥ε εφα φσ Γσ≡φα, α ∩ε≥ε∞≤ ≈≥ε "═σδⁿτ  εß· ≥ⁿ φσεß· ≥φεσ". ╤≡ατ≤, ∩ε≥ε∞ ∞εµφε, Σα Φ ≥ε ≈α±≥ ∞Φ. ╤φα≈αδα ±ΣσδαΘ≥σ Γα° ⌠αΘδ test1.pl Φ±∩εδφ σ∞√∞. ─δ  ²≥επε ΓΓσΣΦ≥σ Ωε∞αφΣ≤:

	chmod +x test1.pl
╟α≥σ∞ ∩≡εΓσ≡ⁿ≥σ πΣσ ≤ Γα± Perl. ─δ  ²≥επε ΓΓσΣΦ≥σ:
	which perl
╤Φ±≥σ∞α Γα∞ Γ√Σα±≥ ≈≥ε ≥ε Γ≡εΣσ: /usr/bin/perl
┼±δΦ:
perl: Command not found.
╥ε ≥επΣα ταΩ≡εΘ≥σ ΩφΦµΩ≤ Φ δεµΦ≥σ±ⁿ ±∩α≥ⁿ. ╙ Γα± ∩≡ε±≥ε φσ≥ Perl ΦδΦ εφ φσ ≤±≥αφεΓδσφ. └ ∞φσ ε±≥ασ≥±  ∩ε±δα≥ⁿ Γα± Ω ±Φ±≥σ∞φε∞≤ αΣ∞ΦφΦ±≥≡α≥ε≡≤ ΦδΦ Ω man (Σδ  ∩σ≡σΓεΣ≈ΦΩεΓ- man ±εΩ≡α∙σφΦσ ε≥ manual α φσ ≥ε ≈≥ε Γ√ ∩εΣ≤∞αδΦ).

╥σ∩σ≡ⁿ ∩≡εΓσ≡ⁿ≥σ ≈≥ε ß√ ±≥≡εΩα 01 ±εΣσ≡µαδα ≥ε ≈≥ε Γ√Σαδα Ωε∞αφΣα which. ┼±δΦ ±εΓ∩αδε ≥ε ΓΓσΣΦ≥σ:

	test1.pl
Φ ßⁿ■±ⁿ φα 50$, ≈≥ε Φ ≥σ∩σ≡ⁿ ∩≡επ≡α∞∞α φσ τα≡αßε≥ασ≥, ≥αΩ ΩαΩ ∩≡αΓΦδⁿφσΘ ΓΓσ±≥Φ:
	./test1.pl

┼±δΦ   ∩≡εΦπ≡αδ, ≥ε φσ ≡αΣ≤Θ≥σ±ⁿ. ─α µσ σ±δΦ Γα∞ ≤Σαδε±ⁿ τα∩≤±≥Φ≥ⁿ ∩≡επ≡α∞∞≤ ΩαΩ test1.pl ²≥ε τφα≈Φ≥, ≈≥ε ≤ Γα± ß≤Σ≤≥ φσ∩≡Φ ≥φε±≥Φ Γ ß≤Σ≤∙σ∞.

╧≡Φ∞σ≡ 2.
─αφφα  ∩≡επ≡α∞∞α Γ√ΓεΣΦ≥ φα ²Ω≡αφ Γ±σ Γα°Φ ±σΩ≡σ≥√. └ Φ∞σφφε ⌠αΘδ /etc/passwd.

	#!/usr/local/bin/perl
	open(PASS, "</etc/passwd") || die "╘αΘδ φσ φαΘΣσφ!";
	while(<PASS>)
	    {
	    print;
	    }
	close(PASS);
╧ε ±φσφΦ :
open(PASS, "</etc/passwd") || die "╘αΘδ φσ φαΘΣσφ!";

"╬≥Ω≡√≥ⁿ" ⌠αΘδ, ≥.σ. ±ετΣα≥ⁿ ≤Ωατα≥σδⁿ ⌠αΘδα PASS, Φ Γ ±δ≤≈ασ ε°ΦßΩΦ Γ√Σα≥ⁿ "╘αΘδ φσ φαΘΣσφ!" Φ ταΩεφ≈Φ≥ⁿ ∩≡επ≡α∞∞≤.

while(<PASS>)
╫Φ≥α≥ⁿ ∩ε εΣφεΘ ±≥≡εΩσ ⌠αΘδα Γ ∩σ≡σ∞σφφ≤■ ∩ε ≤∞εδ≈αφΦ■ $_.
  {
╬≥Ω≡√≥ⁿ ßδεΩ ε∩σ≡α≥ε≡εΓ.
  print;
┬√Γσ±≥Φ φα ²Ω≡αφ ∩σ≡σ∞σφφ≤■ ∩ε ≤∞εδ≈αφΦ■ $_
   }
╩εφσ÷ ßδεΩα.
close(PASS);
╟αΩ≡√≥ⁿ ⌠αΘδ. ▌≥επε ∞εµφε Φ φσ Σσδα≥ⁿ, ≥. Ω. ⌠αΘδ αΓ≥ε∞α≥Φ≈σ±ΩΦ ταΩ≡εσ≥±  ∩ε±δσ εΩεφ≈αφΦ  ∩≡επ≡α∞∞√.

╨στ≤δⁿ≥α≥ ≡αßε≥√ ²≥εΘ ∩≡επ≡α∞∞√ ≥ε≥ µσ ≈≥ε Φ Ωε∞αφΣ√ cat /etc/passwd. ╧ε ²Ω≡αφ≤ ∩≡εßσµαδΦ φσ∩εφ ≥φ√σ ±≥≡εΩΦ φε τα≥ε ≥σ∩σ≡ⁿ ∩σ≡σΣ Γα∞Φ ε≥Ω≡√≥√ πε≡Φτεφ≥√ Perl ∩≡επ≡α∞∞Φ≡εΓαφΦ ! ┬±σ ∩ε±δσΣ≤■∙Φσ ∩≡Φ∞σ≡√ ß≤Σ≤≥ ≡ατΓΦ≥Φσ∞ ²≥εΘ ∩≡επ≡α∞∞√ Φ εφα ∩≡σΓ≡α≥Φ≥±  Φτ παΣΩεπε ≤≥σφΩα Γ ∩≡σΩ≡α±φεπε δσßσΣ  (φσ πσφσ≡αδα).

╧≡Φ∞σ≡ 3.
╨ατΣσδσφΦσ ∩εδσΘ.

      #!/usr/local/bin/perl
      open(PASS, "</etc/passwd") || die "╘αΘδ φσ φαΘΣσφ!";
      while(<PASS>)
          {
	    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
	    print "$login \t $name\n";
          }
      close(PASS);
╧ε ±φσφΦσ:
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
╧≡Φ±ΓεΦ≥ⁿ ≤Ωαταφφ√∞ ∩σ≡σ∞σφφ√∞ ∩εδ  Γ⌡εΣφεΘ ±≥≡εΩΦ, ±≈Φ≥α  ≡ατΣσδΦ≥σδσ∞ ±Φ∞Γεδ ':'.
print "$login \t $name\n";
┬√Γσ±≥Φ login - Φ∞  ∩εδⁿτεΓα≥σδ  Φ σπε ε∩Φ±αφΦσ. ╧εδ  ≡ατΣσδσφ√ ±Φ∞Γεδε∞ '\t' - ≥αß≤δ ÷ΦΦ.

╧≡Φ∞σ≡ 4.
┬√Γσ±≥Φ Φ∞σφα ∩εδⁿτεΓα≥σδσΘ, ε≥±ε≡≥Φ≡εΓαφφ√⌡ ∩ε π≡≤∩∩α∞.

	#!/usr/local/bin/perl
	open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "╘αΘδ φσ φαΘΣσφ!";
	while(<PASS>)
	    {
	    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
	    print "$login \t $gid \t $name\n";
	    }
	close(PASS);
╧ε ±φσφΦ :
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "╘αΘδ φσ φαΘΣσφ!";

┬ ΣαφφεΘ ±≥≡εΩσ Γσ±ⁿ ⌠εΩ≤±! ┬⌡εΣφ√∞ ⌠αΘδε∞ Σδ  φα°σΘ ∩≡επ≡α∞∞√ ±≥αδ Γ√⌡εΣ Ωε∞αφΣ√ sort Ωε≥ε≡α  Φ ε≥±ε≡≥Φ≡≤σ≥ Γ⌡εΣφ√σ Σαφφ√σ.

╘ε≡∞α≥Φ≡εΓαφφ√Θ Γ√ΓεΣ.

═≤ α ≥σ∩σ≡ⁿ φα∩σ≈α≥ασ∞ φα ²Ω≡αφσ Γ±σ φα°Φ Σαφφ√σ Γ ≤ΣεßφεΘ ⌠ε≡∞σ.

#!/usr/local/bin/perl
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "╘αΘδ φσ φαΘΣσφ!";
while(<PASS>)
    {
    ($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
    write();	# ╘ε≡∞α≥Φ≡εΓαφφ√Θ Γ√ΓεΣ Σαφφ√⌡.
    }
close(PASS);
exit 0;		# ╟αΓσ≡°σφΦσ ∩≡επ≡α∞∞√
############ ╬∩Φ±αφΦσ ⌠ε≡∞√ Γ√ΓεΣα ##################
format STDOUT =
╧εδⁿτεΓα≥σδⁿ: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
				$name
              ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
              ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                                $name
----------------------------------------------------------------------
Login:@<<<<<<<<   Uid:@<<<  Gid:@<<<  Home dir:@<<<<<<<<<<<<<<<<<<<<<
      $login,         $uid,     $gid,          $home_dir
----------------------------------------------------------------------
.	# ▌≥ε ∩ε±δσΣφ   ±≥≡εΩα ∩≡επ≡α∞∞√

╘≡απ∞σφ≥ ≡στ≤δⁿ≥α≥α:

╧εδⁿτεΓα≥σδⁿ: ╩αδ≤µ±ΩΦΘ δΦΩσ≡εΓεΣε≈φ√Θ ταΓεΣ. ╦≤≈°Φσ ΓεΣΩΦ Φ
              φα±≥εΘΩΦ. ╟ΓεφΦ≥ⁿ ≥εδⁿΩε ∩σ≡σΣ ∩≡ατΣφΦΩε∞ ╩ε±≥≡ΦΩεΓ≤
              └φα≥εδΦ■ ≥. 2-23-06,,,
----------------------------------------------------------------------
Login:uucryst     Uid:1055  Gid:66    Home dir:/var/spool/uucppublic/
----------------------------------------------------------------------
╧εδⁿτεΓα≥σδⁿ: ╥ε≡πεΓ√Θ ─ε∞ ─Φδσφ,,,
----------------------------------------------------------------------
Login:uudilen     Uid:1075  Gid:66    Home dir:/var/spool/uucppublic
----------------------------------------------------------------------

┼±δΦ Γα∞ Φφ≥σ≡σ±φε ≤τφα≥ⁿ ΩαΩ ≡αßε≥ασ≥ ²≥α ∩≡επ≡α∞∞α, ≥ε ∩σ≡σΓσ≡φΦ≥σ ±≥≡αφΦ÷≤ Φ φα≈ΦφΦ≥σ ±Γεσ ∩≤≥σ°σ±≥ΓΦσ Γ ∞Φ≡σ Perl. ╞σδα■ ≤Σα≈Φ!

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