home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2001 November / MICD2001_11_NR1.iso / Www / WebArea / index.php@id=39 < prev    next >
Text File  |  2001-09-26  |  27KB  |  519 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4//PL">
  2. <html>
  3. <head>
  4. <title>WEB-AREA.org - serwis webmaster≤w</title>
  5. <link href="style.css" rel="stylesheet" type="text/css">
  6. <LINK REL="SHORTCUT ICON" HREF="favicon.ico"> 
  7. <meta http-equiv="Creation-date" content="28.08.2001">
  8. <meta http-equiv="Reply-to" content="web-area@web-area.org">
  9. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  10. <meta name="author" content="Jakub & Jan Filipowscy">
  11. <meta name="description" content="Serwis webmasterow. Znajdziesz tu kilka kursow popularnych internetowych jezykow programowania takich jak: HTML, CSS, WML, SGML, XML, PHP, Perl i Java. Zamiescilismy tu rowniez wiele skryptow JavaScript, PHP i CGI. Przeczytac mozna kilka artykulow i sciagnac kilka szablonow. Dla poczatkujacych jest dzial BeginnerZone. ">
  12. <meta http-equiv="keywords" content="WEB-AREA, web-area, web area, web, area, WEB-AREA.org, web-area.org, webara.org,strefa webmastera, strefa, webmastera, webmaster, WEBMASTER, Webmaster, tworzenie stron www, www, strona www, internet, world wide web, design, designerswo, designer, programowanie, jΩzyki, jΩzyk programowania, php, cgi, html, java, javascript, sgml, wml, PHP, CGI, HTML, Java, JavaScript, SGML, WML, wap, standarty, skrypty php, skrypty cgi, applety java, aplety, aplety java, aplety javy, applety javy, javascripty, JavaScripty, skrypty javy, publikowanie witryny, witryna, tworzenie witryn, tworzenie sklep≤w internetowych, edytory html, tekstowe edytory html, projekt syf, szablony, Szablony, free, darmowe, zadarmo, subskrypcja, lista mailingowa, mailing list, lista subskrypcyjna, bannery, formularze, liczniki, ksiΩgi go╢ci, linki, fora, pliki i operacje na nich, statystyki, wyszukiwarki, rankingi, darmowe skrypty, Jakub Filipowski, Jan Filipowski, katalog, Katalog stron zwi▒zanych z tematyk▒ webmasterstwa, webmasterswo, magazyn www, style, CSS, XML, ASP, jΩzyki skryptowe, generatory, anarchizm">
  13. </head>
  14. <body>
  15.  
  16.  
  17. <div align="left">
  18. <table border="0" cellpadding="0" cellspacing="0" width="770">
  19. <tr>
  20. <td width="770" valign="top" colspan="3">
  21.  
  22.     <table border="0" cellpadding="0" cellspacing="0" width="770">
  23.     <tr>
  24.     <td width="166" valign="top"><a href="index.php"><img src="img/logo.gif" border="0" width="166" height="70" alt="WEB-AREA.org - serwis webmaster≤w"></a></td>
  25.     <td width="604" height="70" background="img/gora.gif" align="right"><iframe src="banner.php" MARGINWIDTH="0" MARGINHEIGHT="0" HSPACE="0" VSPACE="0" FRAMEBORDER="0" SCROLLING="NO" WIDTH="468" HEIGHT="60">
  26. </iframe></td>
  27.     </tr></table>
  28.  
  29. </td>
  30. </tr><tr>
  31. <td width="770" valign="top" colspan="3">
  32.     <table border="0" cellpadding="1" cellspacing="0" width="770">
  33.         <tr><form method="post" action="szukaj.php">
  34.         <td width="260">    <input type="text" name="zapytanie" size="15"> <input type="submit" value="SZUKAJ"> <span class="m"><a href="index.php@url=redakcja_2Fszukaj">Jak szukaµ?</a></span></td></form>
  35.         <td width="510">
  36.         
  37.         <p align="center">
  38.         <a href="index.php@id=206" class="gora">Konkurs</a>   
  39.         <a href="subskrypcja/nowa.php" class="gora">Za│≤┐ subskrypcjΩ</a>    
  40.         <a href="index.php@id=128" class="gora">Katalog</a>    
  41.         <a href="forum.php" class="gora">Forum</a>    
  42.         <a href="index.php@id=15" class="gora">BeginnerZone</a>
  43.         
  44.         </td>
  45.     </tr></table>
  46. </td>
  47. </tr>
  48. <tr>
  49. <td width="142" valign="top">
  50.     
  51.     <br>
  52.     <table border="0" cellpadding="0" cellspacing="0" width="142">
  53.     <tr>
  54.     <td width="142" valign="top"><img src="img/menu.gif" border="0" width="142" height="13" alt="MENU"></td>
  55.     </tr>
  56.     <tr>
  57.     <td width="142" valign="top" background="img/okno1.gif">
  58.     <img src="img/s.gif" width="9" height="8"><b class="menu1">KURSY</b><br>
  59.       - <a href="index.php@id=50" class="menu">HTML</a><br>
  60.       - <a href="index.php@id=40" class="menu">CSS</a><br>
  61.       - <a href="index.php@id=62" class="menu">Java</a><br>
  62.       - <a href="index.php@id=145" class="menu">PHP</a><br>
  63.       - <a href="index.php@id=39" class="menu">CGI</a><br>
  64.       - <a href="index.php@id=5" class="menu">ASP</a><br>
  65.       - <a href="index.php@id=182" class="menu">WML</a><br>
  66.       - <a href="index.php@id=190" class="menu">XML</a><br>
  67.       - <a href="index.php@id=159" class="menu">SGML</a><br>
  68.  
  69.     <img src="img/s.gif" width="9" height="8"><b class="menu1">SKRYPTY</b><br>
  70.       - <a href="index.php@id=78" class="menu">JavaScript</a><br>
  71.       - <a href="index.php@id=135" class="menu">PHP</a><br>
  72.       - <a href="index.php@id=30" class="menu">CGI</a><br>
  73.  
  74.     <img src="img/s.gif" width="9" height="8"><b class="menu1">INNE</b><br>
  75.       - <a href="index.php@id=59" class="menu">Szablony</a><br>
  76.       - <a href="forum.php" class="menu">Forum</a><br>
  77.       - <a href="index.php@id=61" class="menu">Webmasterska lista</a><br>
  78.       - <a href="index.php@id=128" class="menu">Katalog</a><br>
  79.       - <a href="index.php@id=15" class="menu">BeginnerZone</a><br>
  80.       - <a href="index.php@id=206" class="menu">Konkurs</a><br>
  81.     
  82.     <img src="img/s.gif" width="9" height="8"><b class="menu1">SUBSKRYPCJA</b><br>
  83.       - <a href="subskrypcja/nowa.php" class="menu">Za│≤┐</a><br>
  84.       - <a href="subskrypcja/admin.php" class="menu">Administracja</a><br>
  85.  
  86.     <img src="img/s.gif" width="9" height="8"><b class="menu1">REDAKCJA</b><br>
  87.       - <a href="index.php@id=156" class="menu">Sk│ad</a><br>
  88.       - <a href="index.php@id=157" class="menu">Wsp≤│praca</a><br>
  89.       - <a href="index.php@id=158" class="menu">Reklama</a></td>
  90.     </tr>
  91.     <tr>
  92.     <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  93.     </tr></table>
  94.  
  95. </td>
  96. <td width="486" valign="top"><br>
  97.     <div align="center">
  98.     <table border="0" cellpadding="0" cellspacing="0" width="460">
  99.     <tr>
  100.     <td width="460" valign="top"><p align="left"><span class="nag">Kurs jΩzyka PERL</span>
  101. <p>Autorem kursu jest <a href="mailto:nowak@vips.qs.pl?subject=Kurs Perla na webmaster.gery.pl">Maciej Jerzy Nowak</a>. Kopiowanie i publikowanie tylko za zgod▒ autora.
  102. <p><CENTER><b>WstΩp</b></CENTER>
  103. <p>Co to jest i do czego s│u┐y Perl?
  104. <BR><BR>
  105. <DIV ALIGN=JUSTIFY>
  106.     Perl jest jΩzykiem programowania nale┐▒cym do grona jΩzyk≤w kompilowanych, lecz
  107.  programy w nim napisane s▒ przechowywane w postaci ╝r≤d│owej i kompilowane w momencie
  108.  wykonania programu przez interpreter, a nastΩpnie wykonywane. DziΩki takiemu rozwi▒zaniu wprowadzenie zmian w kodzie
  109. i ich testowanie jest bardzo proste - nie musimy kompilowaµ "rΩcznie" tak, jak
  110. naprzyk│ad w C++, Javie, czy VB. Istnieje tak┐e kompilator Perla pozwalaj▒cy na
  111. tworzenie program≤w w postaci kodu binarnego, kt≤re s▒ wykonywane z pominiΩciem
  112. etapu interpretacji.<BR>
  113.  
  114.     Perl jest jednym z najlepszych jΩzyk≤w do pisania nawet bardziej skomplikowanych skrypt≤w
  115. zarz▒dzaj▒cych systemami UNIX'owymi (kt≤re powodzeniem mog▒ zast▒piµ shell'owe),
  116. narzΩdzi konfiguracyjnych i innych program≤w u│atwiaj▒cych pracΩ (takie by│o jego pierwotne przeznaczenie),
  117. a tak┐e do pisania program≤w CGI (Common Gateway Interface - interfejs s│u┐▒cy do komunikacji
  118. miΩdzy serwerem WWW a zewnΩtrznymi aplikacjami pozwalaj▒cy na tworzenie interaktywnych
  119. serwis≤w wykorzystuj▒cych najprostsze elementy takie jak: liczniki, statystyki, ksiΩgi go╢ci; oraz bardzo zaawansowanych
  120. do kt≤rych mo┐emy zaliczyµ np.: systemy wyszukiwawcze, bazy danych, itp. G│≤wn▒ zalet▒ program≤w
  121. wykorzystuj▒cych CGI jest to, ┐e s▒ wykonywane po stronie serwera - dziΩki temu s▒ niezale┐nie od przagl▒darki
  122. i systemu operacyjnego u┐ytkownika). Wykorzystanie Perla w CGI nale┐y do g│≤wnych jego zastosowa±
  123. w serwerach z systemami Microsoft'u i innymi.
  124. </DIV>
  125.  
  126. <p>Zalety i wady jΩzyka Perl
  127. <BR><BR>
  128. + Perl ma interpretatory przeznaczone na r≤┐ne systemy operacyjne, jest wiΩc │atwo jest go przenie╢µ z jednej platformy na drug▒<br>
  129. + Jest zoptymalizowany do pracy z dowolnie d│ugimi tekstami i ci▒gami danych binarnych<br>
  130. + Zawiera najelastyczniejsze i najwydajniejsze narzΩdzia do przetwarzania tekst≤w<br>
  131. + Pozwala na pisanie aplikacji obs│uguj▒cych bazy danych, grafikΩ i sieµ<br>
  132. + Tw≤rcy Perla chcieli stworzyµ jΩzyk praktyczny (│atwy, efektywny, kompletny) i uda│o siΩ im to doskonale<br>
  133. + Przy wszystkich swoich cechach jest wystarczaj▒co szybki, by pisaµ w nim du┐e aplikacje<br>
  134. + Od wersji 5 zawiera mo┐liwo╢µ dodania modu│≤w, kt≤re rozszerzaj▒ jego w│a╢ciwo╢ci<br>
  135. + Dodano tak┐e mo┐liwo╢µ wykorzystania referencji, dziΩki czemu uzyskuje niekt≤re w│a╢ciwo╢ci programowania obiektowgo<br>
  136. + Perl jest │atwy do przyswojenia nawet przez niedo╢wiadczonego programistΩ<br>
  137. + Perl ma zapo┐yczon▒ skadniΩ z innych jΩzyk≤w programowania, dziΩki czemu nie trzeba siΩ go uczyµ ca│kowicie od nowa<br>
  138. + Napisanie w nim du┐ego programu mo┐e byµ tak samo proste, jak napisanie ma│ego programiku<br>
  139. <br>
  140. - Perl nie nale┐y do jΩzyk≤w piΩknych (czyli ma│ych, eleganckich i minimalnych)<br>
  141. - Jest kompilowany przed ka┐dym uruchomieniem, co powoduje pewne op≤┐nienia<br>
  142. - Nale┐y on do jΩzyk≤w wy┐szego poziomu, co oznacza ┐e bardziej trzeba przekszta│ciµ kod, by by│ zrozumia│y
  143. dla procesora, dlatego np. potrafi wykonaµ wiΩcej operacji przy wywo│aniu siΩ do pojedy±czej funkcji<br>
  144. - Nie nadaje siΩ do pisania wieloprocesowych aplikacji<br>
  145. - Nie mo┐e byµ wykorzystywany do pisania aplikacji, kt≤re wykorzystuj▒ sterowniki do sprzΩtu<br>
  146. - Skrypty CGI napisane w Perlu s▒ mniej bezpieczne, ni┐ skrypty jΩzyk≤w kompilowanych, poniewa┐ mo┐liwe jest
  147. odczytanie ich ╝r≤de│, a przez to │atwiejsze staje siΩ wykorzystanie instniej▒cych w nich dziur przy w│amywaniu
  148. siΩ do systemu (jest to tak┐e ╢ci╢le powi▒zane z konfiguracj▒ serwera)</p>
  149.  
  150. <CENTER><b>Uruchamianie skrypt≤w Perla</b></CENTER>
  151. <p>WstΩp do opisu uruchomienia program≤w napisanych w Perlu
  152. <BR><BR>
  153. <DIV ALIGN=JUSTIFY>
  154.     Programy perlowe mo┐na wykonywaµ w r≤┐nych systemach operacyjnych. Na tej stronie opisali╢my tylko
  155. dwa przypadki: uruchamianie w systemach UNIX i im podobnych (np. Linux), oraz w systemach MS Windows.
  156. Dowiesz siΩ tak┐e, jak wywo│aµ skrypty Perla jako CGI. Nie ma natomiast w naszym serwisie opisu,
  157. jak zainstalowaµ interpretator Perl. Wszystkie informacje dotycz▒ wersji 5.
  158. </DIV>
  159.  
  160. <p>Uruchamianie w systemie UNIX
  161. <BR><BR>
  162. <DIV ALIGN=JUSTIFY>
  163.     Program perlowski w systemie unix mo┐emy uruchomiµ na 2 sposoby, pierwszy z nich polega na
  164. wywo│aniu interpretatora <i>perl</i> ze ╢cie┐k▒ do skryptu <i>moj_program.pl</i> jako parametr
  165. (w [] podane s▒ wyra┐enia opcjonalne) 
  166.  
  167.  
  168. znak_zachety$ [interpretator_path/]perl [program_path/]moj_program.pl
  169. <!--                     szeroko╢µ tekstu                               -->
  170.  
  171.  
  172. Tre╢µ polecenia mo┐e lub nawet musi zostaµ zmieniona, je╢li spe│nia pewne warunki:<br></DIV>
  173. - <i>znak_zachety$</i> - jest zale┐ny od ustawie± pow│oki (shell'a), kt≤rej u┐ywasz<br>
  174. - <i>[interpretator_path/]</i> - sciezka_do_interpretatora, mo┐e byµ pominiΩta je╢li interpretator jest zamieszczony w miejscu wymienionym przez zmienn▒ PATH (ustawienie jej
  175. zale┐y od pow│oki. Szczeg≤│y znajdziecie w dokumentacji do danej pow│oki<br>
  176. - <i>perl</i> - polecenie wywo│ujace interpretator, w przypadku niekt≤rych system≤w UNIX (np. BSD) nale┐y u┐ywaµ polecenia <i>perl5</i><br>
  177. - <i>[program_path/]</i> - sciezka_do_programu, mo┐e byµ pominiΩta je╢li program jest zamieszczony w miejscu wymienionym przez zmienn▒ PATH, lub w katalogu bie┐▒cym<br>
  178. - <i>moj_program</i> - nazwa mo┐e byµ dowolna, proponujΩ jednak stosowanie prostych nazw (przyda siΩ przy debugowaniu)</br>
  179. - <i>.pl</i> - rozszerzenie nie jest obowi▒zkowe, stanowi jednak pewn▒ konwencjΩ, i je╢li nie ma ┐adnych powa┐nych przeciwskaza±, lepiej siΩ do niej dostosowaµ<br><br>
  180. <DIV ALIGN=JUSTIFY>
  181. Drug▒, alternatywn▒ metod▒ uruchomienia skryptu jest wpisanie jego nazwy.
  182.  
  183. znak_zachety$ moj_program.pl
  184.  
  185. Jest to mo┐liwe przy spe│nieniu nastΩpuj▒cych warunk≤w:<br>
  186. - Pierwsza linia programu musi zawieraµ kod
  187. #!sciezka_do_interpretatora/perl
  188. - Program musi mieµ ustawione prawa do wykonania co uzyskujemy poleceniem 
  189.  
  190. znak_zachety$ chmod a+x moj_program.pl
  191.  
  192.  
  193. - Zmienna pow│oki PATH musi zawieraµ ╢cie┐kΩ do bierz▒cego katalogu, je╢li nie, to skrypt wywo│ujemy poleceniem 
  194.  
  195. znak_zachety$ ./moj_program.pl<br>
  196.  
  197.     Programy napisane w perlu, uruchamiane jako CGI, dzia│aj▒ podobnie jak uruchomione z pow│oki (tzn. z linii polece±). SprawΩ komplikuje jednak serwer WWW,
  198. kt≤ry musi wiedzieµ, ┐e dany program, ma wykorzystywaµ po uruchomieniu interfejs CGI. Uzyskuje siΩ to umieszczaj▒c go w katalogu <i>/cgi-bin/</i>.
  199. NastΩpn▒ komplikacj▒ jest ustawienie praw dostΩpu (polecenie <i>chmod</i>) tak, by serwer WWW m≤g│ go uruchomiµ. Nale┐y tak┐e sprawdziµ, czy pierwsza linia programu
  200. wskazuje na interpretator perla (jest to jeden z najczΩstszych b│Ωd≤w u pocz▒tkuj▒cych webmaster≤w).
  201. </DIV>
  202.  
  203.  
  204.  
  205. <P>Uruchamianie w systemach Win 9x/NT
  206. <BR><BR>
  207. <DIV ALIGN=JUSTIFY>
  208.     By uruchomiµ program napisany w Perlu w systemach Windows, nale┐y zainstalowaµ najpierw jego interpretator,
  209. kt≤ry mo┐ecie pobraµ z serwera <a href="javascript:if(confirm('http://www.activestate.com/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.activestate.com/'" tppabs="http://www.activestate.com/">www.activestate.com</a>. Znajdziecie tam
  210. r≤wnie┐ instrukcjΩ dotycz▒c▒ jego instalacji i dokumentacjΩ do niego. Wywo│anie programu perlowskiego z linii polece±
  211. wygl▒da mniej wiΩcej tak:
  212.  
  213.  
  214. C:\>[C:\][perl_path\]perl.exe [D:\][program_path\]moj_program.pl
  215.  
  216.  
  217. Gdzie:<br></DIV>
  218. - <i>C:\></i> - systemowy znak zachΩty<br>
  219. - <i>[C:\]</i>,<i>[D:\]</i> - odpowiednie dyski<br>
  220. - <i>[perl_path]</i> - katalog w kt≤rym znajduje siΩ plik perl.exe, mo┐e byµ pominiΩty 
  221. je┐eli jest bie┐▒cy lub wyszczeg≤lniony w zmiennej PATH (zmienn▒ ustawia siΩ w autoexec.bat poleceniem
  222. <i>PATH=C:\╢cie┐ka_do_perla\;"%PATH%"</i>)<br>
  223. - <i>[program_path]</i> - katalog w kt≤rym znajduje siΩ nasz program  (ten kt≤ry chcemy wykonaµ :)<br>
  224. - <i>moj_program.pl</i> - nazwa programu, kt≤ry chcemy wykonaµ<br>
  225. <DIV ALIGN=JUSTIFY>
  226.     W systemach Windows nie jest wymagana pierwsza linia programu (inaczej jest w UNIX'ach), jednak jej istnienie
  227. nie powoduje ┐adnych b│Ωd≤w - jest traktowana jak komentarz.<br>
  228.     By uruchomiµ program jako CGI, musi on byµ skojarzony z serwerem WWW (opis jak to zrobiµ powinien znajdowaµ siΩ
  229. w dokumentacji). NastΩpnym warunkiem jest to, by katalog w kt≤rym siΩ znajduje, pozwala│ na wykonanie skryptu
  230. przez serwer. Nale┐y tak┐e skojarzyµ rozszerzenie <i>*.pl</i> z interpretatorem perla. Mo┐na to zrobiµ rΩcznie
  231. w rejestrze, lub poprzez Eksploator Windows: w menu Widok, podmenu Opcje, zak│adka Typy Plik≤w i przycisk Nowy Typ.
  232. </DIV>
  233.  
  234.  
  235. <p>Opcje programu Perl 5
  236. <BR><BR>
  237. <DIV ALIGN=JUSTIFY>
  238.  
  239.     Poni┐ej wymienionych opcji mo┐na u┐ywaµ podczas wywo│ania programu z linii polece±,
  240. lub (systemy *UNIX) w linii, gdzie podajemy ╢cie┐kΩ do interpretatora. Pierwszy spos≤b
  241. ma wy┐szy priorytet. Na niekorzy╢µ drugiego sposobu przemawia tak┐e fakt, ┐e nie da siΩ
  242. wywo│aµ przy pomocy niego niekt≤rych opcji. WiΩcej szczeg≤│≤w dowiedzieµ siΩ mo┐na z 
  243. dokumentacji Perla w czΩ╢ci perlrun.
  244.  
  245. <p><b>-h</b>            <br>- wy╢wietla pomoc dotycz▒c▒
  246. parametr≤w uruchamiania programu
  247.  
  248. <p><b>-c </b>           <br>- kompilacja programu w 
  249. celu wykrycia b│Ωd≤w, bez jego
  250. wykonania
  251.  
  252. <p><b>-d[:debugger]</b> <br>- uruchamia skrypt pod danym
  253. debuggerem
  254.  
  255. <p><b>-e 'komenda'</b>  <br>- pozwala na wykonanie
  256. kodu zawartego w 
  257. linii polece±
  258.  
  259. <p><b>-Ikatalogi</b>    <br>- okre╢la katalogi, w
  260.                 kt≤rych s▒ modu│y i
  261.                 pliki ╝r≤d│owe
  262.                 wykorzystywane w programie
  263.                 (mo┐e byµ ich kilka)
  264.  
  265. <p><b>-l[liczba]</b>    <br>- w systemie ≤semkowym okre╢la znak ko±ca linii
  266.  
  267. <p><b>-m [-]modu│</b>   <br>- wywo│uje [niewywo│uje] okre╢lony modu│
  268.  
  269. <p><b>-P</b>            <br>- "przepuszcza" program przez preprocesor jΩzyka C
  270.                przed kompilacj▒
  271.  
  272. <p><b>-s</b>            <br>- pozwala na u┐ycie dodatkowych opcji po nazwie skryptu
  273.  
  274. <p><b>-S</b>            <br>- powoduje wyszukiwanie plik≤w r≤wnie┐ wed│ug zmiennej
  275.                ╢rodowiskowej
  276.  
  277. <p><b>-T</b>            <br>- uniemo┐liwia wykonanie operacji zwi▒zanych z systemem
  278.                plik≤w lub systemem operacyjnym, co powoduje zwiΩkszenie
  279.                bezpiecze±stwa program≤w CGI
  280.  
  281. <p><b>-v</b>            <br>- wy╢wietla aktualnie u┐ywan▒ wersjΩ interpteratora Perl
  282.  
  283. <p><b>-V[:zmienna]</b>  <br>- wy╢wietla informacjΩ o konfiguracji na temat okre╢lony
  284.                przez zmienn▒
  285.  
  286. <p><b>-w</b>            <br>- powoduje wy╢wietlenie dodatkowych ostrze┐e± przy
  287.                debugowaniu programu. Mo┐e powodowaµ problemy w skryptach
  288.                wykorzystywuj▒cych interfejs CGI (przez serwer WWW)
  289.  
  290. <p><CENTER><b>Sk│adnia jΩzyka PERL</b></CENTER>
  291. <p>WstΩp do sk│adni perla
  292. <BR><BR>
  293. <DIV ALIGN=JUSTIFY>
  294.     Na tej stronie znajdziesz informacje wystarczaj▒ce do napisania prostego programu. Dowiesz siΩ jaka jest prawid│owa
  295. sk│adnia jΩzyka Perl, jak wstawiµ komentarze i jak prowadziµ operacje na zmiennych. Poznasz tak┐e wiΩkszo╢µ operator≤w,
  296. ich priorytety w wyra┐eniach logicznych (o kt≤rych szerzej mowa w dziale testy i pΩtle) oraz nauczysz siΩ jak pisaµ
  297. w│asne procedury i funkcje.
  298. </DIV>
  299. <p>Komentarze w programie
  300. <BR><BR>
  301. <DIV ALIGN=JUSTIFY>
  302.     Kiedy piszesz program, jest on zawsze dla ciebie prosty i zrozumia│y. Lecz po jakim╢ czasie zapomina siΩ co
  303. i daczego dany fragment kodu robi - program staje siΩ wtedy nieczytelny. Je╢li musisz wprowadziµ w nim jakie╢ zmiany
  304. mo┐e to byµ bardzo uci▒┐liwe. Dlatego zaleca siΩ strosowanie komentarzy - tekstu ignorowanego przez kompilator.
  305. W Perlu nale┐y je umieszczaµ za znakiem <i>#</i> (kombinacja klawiszy Shift + 3). Jaka jest najlepsza regu│a
  306. ich stosowania? Pozw≤lmy ╝r≤d│u programu powiedzieµ jak to robimy, a komentarzom dlaczego to robimy, np:<BR>
  307. </DIV>
  308.  
  309. # dobry komentarz - m≤wi dlaczego wykonujemy dzia│anie:
  310. $V = $s / $t;   # obliczamy prΩdko╢µ pojazdu
  311.  
  312. # z│y przyk│ad - komentarz m≤wi jak obliczamy prΩdko╢µ:
  313. $V = $s / $t;   # dzielimy drogΩ $s przez czas $t
  314.  
  315. <p>Polecenia (wykorzytanie litera│≤w)
  316. <BR><BR>
  317. <DIV ALIGN=JUSTIFY>
  318.     Podstaw▒ ka┐dego jΩzyka programownia s▒ litera│y - nale┐▒ do nich cyfry lub ci▒gi znak≤w, np:
  319.  
  320. 23
  321. -2789
  322. 3.1482
  323. 5.29e-6
  324. 'Hello World'   # je╢li litera│y zawieraj▒ inne znaki ni┐ cyfry
  325.                 # musimy je zamkn▒µ wewn▒trz cudzys│ow≤w
  326.  
  327.     Litera│y mo┐emy przetworzyµ na polecenia, dodaj▒c na ko±cu znak <i>;</i> (╢rednik). Polecenia tym r≤┐ni▒ siΩ
  328. od litera│≤w, ┐e zwracaj▒ warto╢ci. Poni┐ej przedstawione polecenie zwraca ci▒g znak≤w <i>hello World</i> do systemu.
  329.  
  330. Hello World;    # trzeba pamiΩtaµ o ╢redniku!
  331. </DIV>
  332.  
  333. <p>Operatory i operacje na zmiennych
  334. <BR><BR>
  335. <DIV ALIGN=JUSTIFY>
  336.     Polecenia staj▒ siΩ po┐yteczne dopiero przy wykorzystaniu zmiennych i operatr≤w. Zmienn▒ nazywamy co╢,
  337. co ma warto╢µ kt≤r▒ mo┐na zmieniaµ. W Perlu wszystkie zmienne s▒ zmiennymi skalarnymi, co oznacza ┐e mo┐na
  338. do nich tak samo wprowadzaµ liczby czy ci▒gi znak≤w (zmienne skalarne zachowuj▒ siΩ bardzo podobnie
  339. jak zmienne w Visual Basic'u zadeklarowane <i>Dim zmienna as Variant</i>). Ka┐da zmienna zaczyna siΩ od
  340. znaku <i>$</i> (Shift + 4). Nazwy zmiennych mog▒ sk│adaµ siΩ tylko z liter i cyfr oraz ze znaku <i>_</i>.
  341. Nale┐y zwr≤ciµ uwagΩ na to, ┐e Perl tak jak wiΩkszo╢µ jΩzyk≤w programowania rozr≤┐nia ma│e i du┐e litery. 
  342.  
  343. $zmienna = "Hello World";   # w tym momencie program tworzy zmienn▒
  344.                             # i przypisuje do niej ci▒g znak≤w
  345.  
  346. $zmienna = 12;              # do tej samej zmiennej przypisujemy liczbΩ
  347.  
  348.     Operator jest symbolem nakazuj▒cym kompilatorowi wykonaµ jak▒╢ operacjΩ, na przyk│ad w powy┐szym przyk│adzie 
  349. operator <i>=</i> przypisuje zmiennej <i>$zmienna</i> warto╢µ polecenia <i>"Hello World";</i>
  350. Obie strony przypisania s▒ nazywane operandami. Operator <i>=</i> oczekuje od operand pewnych
  351. w│a╢ciwo╢ci: od prawej, ┐e ma warto╢µ, od lewej, ┐e mo┐na jej przypisaµ warto╢µ. W momencie przypisania
  352. ca│e wyra┐enie przyjmuje warto╢µ r≤wn▒ warto╢ci przypisanej do lewego operandu. Dlatego mo┐emy napisaµ tak:
  353.  
  354. $a = ($b = "Hello World");  # pobieranie warto╢ci wyra┐enia z nawiasu
  355.                             # Wynik: zmienna $a jest teraz r≤wna
  356.                             # zmiennej $b, kt≤ra ma warto╢µ "Hello World"
  357.  
  358. Powy┐sze wyra┐enie jest r≤wnowa┐ne temu:
  359.  
  360. $b = "Hello World";         # najpierw $b otrzymuje warto╢µ "Hello World"
  361. $a = $b;                    # potem $a otrzymuje warto╢µ $b
  362.  
  363. Kolejno╢µ wykonywania dzia│a± zale┐y od nawias≤w np.
  364.  
  365. $a = 3;
  366. $b = 5;
  367. $c = 7;
  368. ($a = $b) = $c;   # Wynik: $a = 7, $b = 3, $c = 7
  369.  
  370.  
  371.     Jak ju┐ wspomnia│em Perl pos│uguje siΩ zmiennymi skalarnymi, czyli nie zwraca uwagi
  372. na r≤┐nice miΩdzy liczbami ca│kowitymi, zmiennoprzecikowymi i ci▒gami znak≤w (inaczej ni┐ w innych
  373. jΩzykach takich jak C czy Turbo Pascal). W razie potrzeby potrafi on przeprowadziµ automatyczn▒ konwersjΩ
  374. typ≤w np:
  375.  
  376. $a = "35";        # $a zawiera ci▒g znak≤w, kt≤ry przedstawia liczbΩ
  377. $b = 56;          # $b zawiera liczbΩ
  378. $c = $a + $b;     # Wynik: $c = 91, zmienna $a zosta│a zmieniona na liczbΩ,
  379.                   # potem zsumowana z $b, wynik zosta│ zapisany w $c
  380.  
  381. Je┐eli ze zmiennej zawieraj▒cej ci▒g znak≤w Perlowi nie uda siΩ uzyskaµ liczby, otrzymuje ona warto╢µ 0.
  382.  
  383. $a = "12";        # $a zawiera liczbΩ
  384. $b = "text";      # $b zawiera ci▒g znak≤w, kt≤ry nie jest liczb▒
  385. $c = $a + $b;     # Wynik: $c = 12, poniewa┐ Perl nie potrefi│ (raczej
  386.                   # s│usznie) przerobiµ $b = "text" na liczbΩ
  387.  
  388.  
  389. </DIV>
  390.  
  391. <p>Lista operator≤w
  392. <BR><BR>
  393. <DIV ALIGN=JUSTIFY>
  394.     W powy┐szym przyk│adzie zosta│ zastosowany operator dodawania. Powoduje on ┐e polecenie
  395. ma warto╢µ sumy dw≤ch operand≤w. Warto╢µ polecenia przypisywali╢my operatorem <i>=</i>
  396. do zmiennej <i>$c</i>. W Perlu wystΩpuje ich wiele i s▒ o r≤┐nym priorytecie. Priorytet
  397. decyduje o kolejno╢ci wykonywania dzia│a±. Dzia│ania o wy┐szym priorytecie s▒ wykonywane w pierwszej
  398. kolejno╢ci. Je╢li chcemy j▒ (kolejno╢µ) zmieniµ, musimy u┐yµ nawias≤w. Poni┐ej jest przedstawiona lista
  399. najwa┐niejszych operator≤w razem z ich kr≤tkimi opisami.
  400. <br><br>
  401. Operatory <i>++</i> i <i>--</i><br>
  402. S▒ one operatorami zwiΩkszaj▒cymi (inkramentacja) lub zmniejszaj▒cymi (dekrementacja) warto╢µ danej zmiennej o 1
  403.  
  404. # --- postinkrementacja ---
  405. $a = 5;
  406. $b = $a++;     # przypisanie $a do $b, nastΩpnie zwiΩkszenie $a o jeden
  407.                # Wynik: $a = 6, $b = 5
  408. # --- preinkrementacja ---
  409. $a = 5;
  410. $b = ++$a;     # zwiΩkszenie $a o jeden, nastΩpnie przypisanie jej do $b
  411.                # Wynik: $a = 6, $b = 6
  412. </P><br></td>
  413.     </tr></table>
  414.     </div>
  415. </td>
  416. <td width="142" valign="top">
  417.  
  418.         <br>
  419.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  420.         <tr>
  421.         <td width="142" valign="top"><img src="img/login.gif" border="0" width="142" height="13" alt="LOGIN"></td>
  422.         </tr>
  423.         <tr>
  424.         <td width="142" valign="top" background="img/okno1.gif">
  425.         
  426.             
  427.             <div align="center">
  428.             <table cellpadding="0" cellspacing="2" border="0" width="98%">
  429.             <form method="post" action="subskrypcja/login.php">
  430.             <tr><td width="30%"><span class="t">Login:</span></td><td width="68%"><input type="text" name="login" size="15" class="login"></td></tr>
  431.             <tr><td width="30%"><span class="t">Has│o:</span></td><td width="68%"><input type="password" name="haslo" size="15" class="login"></td></tr>
  432.             
  433.             <tr><td colspan="2"><center><input type="image" src="img/ok.gif"></td></tr>
  434.             </form></table></div>
  435.         
  436.         </td>
  437.         </tr>
  438.         <tr>
  439.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  440.         </tr></table>
  441.  
  442.         <br>
  443.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  444.         <tr>
  445.         <td width="142" valign="top"><img src="img/art.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  446.         </tr>
  447.         <tr>
  448.         <td width="142" valign="top" background="img/okno1.gif">
  449.         
  450.         <span class="m">
  451.         
  452.          -<a href="index.php@id=1" class="menu">"Edytory HTML'a"</a><br>
  453.          -<a href="index.php@id=2" class="menu">"Publikowanie witryny"</a><br>
  454.          -<a href="index.php@id=3" class="menu">"PHP w domu"</a><br>
  455.          -<a href="index.php@id=4" class="menu">"Przeszukiwanie stron"</a><br>
  456.          -<a href="index.php@id=204" class="menu">"Wprowadzenie do Javy"</a><br>
  457.          -<a href="index.php@id=210" class="menu">"Grafika w PHP"</a>
  458.         </span>
  459.         
  460.         </td>
  461.         </tr>
  462.         <tr>
  463.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  464.         </tr></table>
  465.         
  466.         <br>
  467.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  468.         <tr>
  469.         <td width="142" valign="top"><img src="img/stat.gif" border="0" width="142" height="13" alt="ARTYKULY"></td>
  470.         </tr>
  471.         <tr>
  472.         <td width="142" valign="top" background="img/okno1.gif"><div align="left"><table border="0" cellpadding="0" cellspacing="0" width="138"><tr><td width="138"><ol><li><a href="index.php@id=135" class="stat">PHP - przyk│adowe skrypty</a> <span class="maleczarne">(1491)</span><br><li><a href="index.php@id=59" class="stat">Szablony 1</a> <span class="maleczarne">(832)</span><br><li><a href="index.php@id=145" class="stat">Kurs PHP</a> <span class="maleczarne">(817)</span><br><br><span class="maleczarne">ú▒cznie: 24039</span>        </ol>
  473.         <center><a href="http://stat.webmedia.pl/cgi-bin/anal?webarea" target="_blank">
  474. <img border=0 src="http://stat.webmedia.pl/cgi-bin/stat?webarea&stat4ur" alt="stat4u" width="40" height="10"></a></center>
  475.         </td></tr></table></div>
  476.         </td>
  477.         </tr>
  478.         <tr>
  479.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  480.         </tr></table>
  481.         
  482.         <br>
  483.         <table border="0" cellpadding="0" cellspacing="0" width="142">
  484.         <tr>
  485.         <td width="142" valign="top"><img src="img/sponsor.gif" border="0" width="142" height="13" alt="SPONSOR"></td>
  486.         </tr>
  487.         <tr>
  488.         <td width="142" valign="top" background="img/okno1.gif"><br>
  489.         <center><EMBED src="img/beep2.swf" quality=high bgcolor=#000000 WIDTH=120 HEIGHT=30></center>                            
  490.         </td>
  491.         </tr>
  492.         <tr>
  493.         <td width="142" valign="top"><img src="img/okno2.gif" border="0" width="142" height="10"></td>
  494.         </tr></table>
  495.  
  496.         <br>
  497.             <div align="center"><table border="0" cellpadding="2" cellspacing="0" width="120">
  498.             <tr>
  499.             <td width="120"><a href="button.php@id=1" target="_blank"><img src="img/cgi.gif" border="0"></a></td>
  500.             </tr>
  501.             <tr>
  502.             <td width="120"><a href="button.php@id=2" target="_blank"><img src="img/ygreg.gif" border="0"></a></td>
  503.             </tr>
  504.             <tr>
  505.             <td width="120"></td>
  506.             </tr>
  507.             </table>
  508.             </div>
  509.         
  510.  
  511. </td>
  512. </tr>
  513. <tr>
  514. <td width="770" valign="top" colspan="3" align="right"><br><br><span class="m">All rights reserved by <a href="mailto:web-area@web-area.org">J&J Filipowscy Design & Code</a></td>
  515. </tr></table></div>
  516.  
  517.  
  518. </body>
  519. </html>