[[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);