Perl

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
(Zmienna leksykalna my)
m
 
Linia 155: Linia 155:
 
  #! /usr/bin/perl
 
  #! /usr/bin/perl
 
  print "Podaj liczbe od 1 do 9:";
 
  print "Podaj liczbe od 1 do 9:";
  $liczba_usera = ;
+
  $liczba_usera = <STDIN>;
 +
chomp($liczba_usera);
 
  $automat = '5';
 
  $automat = '5';
  print "Liczba uzytkownika = $liczba_usera";
+
  print "Liczba uzytkownika = $liczba_usera \n";
 
  print "Liczba automatu =  $automat\n\n";
 
  print "Liczba automatu =  $automat\n\n";
 
  if ($automat == $liczba_usera)
 
  if ($automat == $liczba_usera)
  {nie, przerwe mam:P
+
  {
 
   print "Zgadłeś liczbę automatu $automat \n";
 
   print "Zgadłeś liczbę automatu $automat \n";
 
  }
 
  }
Linia 174: Linia 175:
 
  #! /usr/bin/perl
 
  #! /usr/bin/perl
 
  print "Podaj login:";
 
  print "Podaj login:";
  $user = ;
+
  $user = <STDIN>;
$u = 'root';
+
print "Nazwa usera = $user";
+
print "Nazwa programu =  $u\n\n";
+
 
  chomp($user);
 
  chomp($user);
 +
$u = 'root';
 +
print "Nazwa usera = $user \n";
 +
print "Nazwa użytkownika root =  $u\n\n";
 
  if ($u eq $user)
 
  if ($u eq $user)
 
  {
 
  {
Linia 189: Linia 190:
 
   
 
   
 
W celu testowym możemy zobaczyć co się stanie jeśli odpalimy ten sam program wymazując tylko linijkę chomp($user);
 
W celu testowym możemy zobaczyć co się stanie jeśli odpalimy ten sam program wymazując tylko linijkę chomp($user);
 +
 +
==== Operator "diamentowy" ====
 +
Pobieranie danych z operatora "diamentowego" ''<>'' (znak mniejszości i większości) umożliwia stworzenie programu, który podczas uruchamiania pobierze dodatkowe argumenty ze standardowego wejścia znaczy klawiatury np
 +
./program test1 test2
 +
''test1'' oraz ''test2'' to istniejące pliki. Przykład poniżej powinien rozjaśnić całą zabawę z operatorem diamentowym w perlu.
 +
#! /usr/bin/perl
 +
while (defined($line = <>)) {
 +
        chomp($line);
 +
        print "Wczytałem wiersz $line \n";
 +
}
 +
należy pamiętać aby operator ''<>'' użyć w programie tylko jeden raz w innym przypadku pojawią się błędy.
  
 
=== Pętla while ===
 
=== Pętla while ===
Linia 437: Linia 449:
 
  #! /usr/bin/perl
 
  #! /usr/bin/perl
 
  print "Podaj jakieś imie:";
 
  print "Podaj jakieś imie:";
  $imie = <STDIN>;
+
  $what = <STDIN>;
  chomp($imie);
+
  chomp($what);
 
  my @names = qw/ kasia slawek ania piter natalia adam jacek kuba /;
 
  my @names = qw/ kasia slawek ania piter natalia adam jacek kuba /;
  my $result = &which_elements_is($imie, @names);
+
  my $result = &which_elements_is($what, @names);
 
  sub which_elements_is {
 
  sub which_elements_is {
 
         my ($what, @array) = @_;
 
         my ($what, @array) = @_;
Linia 451: Linia 463:
 
  }
 
  }
 
  if ($result == 1) {
 
  if ($result == 1) {
         print "Imię $imie zostało odnalezione w bazie\n";
+
         print "Imię $what zostało odnalezione w bazie\n";
 
  } else {
 
  } else {
         print "Imię $imie NIE zostało odnalezione w bazie \n";
+
         print "Imię $what NIE zostało odnalezione w bazie \n";
 
  }
 
  }
 +
 +
Jak można łatwo zauważyć w tym krótkim programiku występują dwie stałe o nazwie $what, które działają koło siebie bez żadnych błędów. Tak czy inaczej pisząc w ten sposób program stał się mało czytelny.
 +
 +
=== Tablica asocjacyjna ===
 +
Tablica asocjacyjna jest strukturą danych, która może przechowywać dowolne wartości i zwracać je na żądanie programisty.  Indeksowanie wartości odbywa się za pomocą nazw (kluczy) a nie jak to miało miejsce w zwykłych tablicach za pomocą indeksów. Mały przykład użycia
 +
#! /usr/bin/perl
 +
$nazwa1{"kowalski"} = "Jan";
 +
nazwa1{"nowak"} = "Adam";
 +
foreach $ludzie (qw< nowak kowalski >) {
 +
        print "Słyszałem o rodzinie $ludzie $nazwa1{$ludzie}. \n";
 +
}
 +
  
  
 
'''HOWTO W TRAKCIE PISANIA'''  
 
'''HOWTO W TRAKCIE PISANIA'''  
 
<br /><google1 style="4"></google1>
 
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 13:05, 6 wrz 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych