Perl
Z wiki linux-user
(→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) | ||
− | { | + | { |
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>; |
− | + | ||
− | + | ||
− | + | ||
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:"; | ||
− | $ | + | $what = <STDIN>; |
− | chomp($ | + | 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($ | + | 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ę $ | + | print "Imię $what zostało odnalezione w bazie\n"; |
} else { | } else { | ||
− | print "Imię $ | + | 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> |