[[oktatas:linux|< Linux]] ====== Perl nyelv ====== * **Szerző:** Sallai András * Copyright (c) 2019, Sallai András * Szerkesztve: 2019 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Helló világ ===== nano hello.pl #!/usr/bin/perl print "Helló Világ!\n"; Adjunk rá futtatási jogot: chmod +x hello.pl ./hello.pl ===== Kivitel ===== Készítsük el a kivitel.pl fájlt: nano kivitel.pl #!/usr/bin/perl print STDOUT "alma"; print 'alma'; print 45; print 35, 82, 95; print 35, ' ', 95; print "alma"; print("alma"); ===== Kifejezések ===== Készítsünk egy kif.pl nevű fájlt: nano kif.pl A fájl tartalma: #!/usr/bin/perl print(3 * 5); print "\n"; print 3 * 5; print "\n"; print sqrt(9); print "\n"; ===== Változók ===== Készítsünk egy valt.pl fájlt: nano valt.pl A fájl tartalma: #!/usr/bin/perl my $a = 35; print $a, "\n"; Az operátorok és a változók között lehetnek szóközök és tabulátorok. #!/usr/bin/perl my $a = 35; print $a , "\n"; De írhatjuk egybe: my $a=35; ===== String ===== my $str1 = "alma"; my $str2 = 'alma'; Készítsünk egy scriptet: touch szoveg.pl chmod +x szoveg.pl nano szoveg.pl #!/usr/bin/perl my $str = 'alma'; print "$str\n"; print '$str\n', "\n"; ===== Konkatenálás ===== A konkatenálás a szöveg összefűzése. Perl nyelven ezt pont (.) operátorral csináljuk. my $str1 = "bármi"; my $str2 = "akármi"; my $str3 = $str1.$str2; touch konkat.pl chmod +x konkat.pl nano konkat.pl #!/usr/bin/perl my $str1 = "bármi"; my $str2 = "akármi"; my $str3 = $str1.$str2; print "$str3\n"; ===== Véletlen szám ===== touch vel.sh chmod +x vel.sh nano vel.sh #!/usr/bin/perl my $vel = int(rand(6)); print $vel . "\n"; ===== Kockapóker ===== Amire szükségünk van: 5 véletlen szám egymás mellé írva, szóközzel tagolva. touch poker.pl chmod +x poker.pl nano poker.pl #!/usr/bin/perl my $k1 = int(rand(6))+1; my $k2 = int(rand(6))+1; my $k3 = int(rand(6))+1; my $k4 = int(rand(6))+1; my $k5 = int(rand(6))+1; print "$k1 $k2 $k3 $k4 $k5\n"; ===== Függvények ===== #!/usr/bin/perl sub dobasok { my $k1 = int(rand(6))+1; my $k2 = int(rand(6))+1; my $k3 = int(rand(6))+1; my $k4 = int(rand(6))+1; my $k5 = int(rand(6))+1; } dobasok(); print "$k1 $k2 $k3 $k4 $k5\n"; Póker újra: #!/usr/bin/perl my $k1; my $k2; my $k3; my $k4; my $k5; sub dobasok { $k1 = int(rand(6))+1; $k2 = int(rand(6))+1; $k3 = int(rand(6))+1; $k4 = int(rand(6))+1; $k5 = int(rand(6))+1; } print "Név: "; my $nev = ; chomp($nev); dobasok(); print "$nev: $k1 $k2 $k3 $k4 $k5\n"; dobasok(); print "Számítógép : $k1 $k2 $k3 $k4 $k5\n"; ===== Bekérés ===== Bekérni a következő formában lehet: my $nev = ; ... print "Név: "; my $nev = ; chomp($nev); my $nevMeret = length $nev; print $nevMeret . "\n"; dobasok(); print "$nev: $k1 $k2 $k3 $k4 $k5\n"; ... Ékezetek rendezése: #!/usr/bin/perl use utf8; binmode(STDIN, ":utf8"); binmode(STDOUT, ":utf8"); ===== Szelekció ===== #!/usr/bin/perl print "Dobjunk újra? (i/n): "; my $valasz = ; chomp($valasz); if ($valasz eq "i") { print "Jöhet a dobás...\n"; } Mégsem ág használata: #!/usr/bin/perl print "Dobjunk újra? (i/n): "; my $valasz = ; chomp($valasz); if ($valasz eq "i") { print "Jöhet a dobás...\n"; }else { print "Nem dobunk.\n"; } ===== Többágú szelekció ===== #!/usr/bin/perl print "Melyik számot szeretnéd újradobni? (1, 2, 3, 4, 5): "; my $valasz = ; chomp($valasz); if ($valasz eq "1") { print "Első szám újradobás jön...\n"; } elsif($valasz eq "2") { print "Második szám újradobás jön...\n"; } elsif($valasz eq "3") { print "Harmadik szám újradobás jön...\n"; } elsif($valasz eq "4") { print "Negyedik szám újradobás jön...\n"; } elsif($valasz eq "5") { print "Ötödik szám újradobás jön...\n"; }else { print "Nem dobunk.\n"; } ===== Ciklus ===== Számok 0-tól 9-ig: #!/usr/bin/perl for($i=0; $i<10; $i++) { print $i . "\n"; } #!/usr/bin/perl for($i=0; $i<5; $i++) { dobas(); } print "\n"; sub dobas { print int(rand(6))+1 . " "; } ===== while ciklus ===== #!/usr/bin/perl $a = -1; while($a != 0) { print "Szám: "; $a = ; } ===== do-while ===== #!/usr/bin/perl my $szam; do { print "Szám: "; $szam = } while ($szam != 0);