Tartalomjegyzék

< Linux

Perl nyelv

Helló világ

nano hello.pl
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
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:

kif.pl
#!/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:

valt.pl
#!/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
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
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
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
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

poker.pl
#!/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:

poker2.pl
#!/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 = <STDIN>;
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 = <STDIN>;
...
print "Név: ";
my $nev = <STDIN>;
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ó

szelekt.pl
#!/usr/bin/perl
 
print "Dobjunk újra? (i/n): ";
my $valasz = <STDIN>;
 
chomp($valasz);
 
if ($valasz eq "i") {
	print "Jöhet a dobás...\n";
}

Mégsem ág használata:

szelekt.pl
#!/usr/bin/perl
 
print "Dobjunk újra? (i/n): ";
my $valasz = <STDIN>;
 
chomp($valasz);
 
if ($valasz eq "i") {
	print "Jöhet a dobás...\n";
}else {
	print "Nem dobunk.\n";
}

Többágú szelekció

tobbagu.pl
#!/usr/bin/perl
 
print "Melyik számot szeretnéd újradobni? (1, 2, 3, 4, 5): ";
my $valasz = <STDIN>;
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:

ciklus.pl
#!/usr/bin/perl
 
for($i=0; $i<10; $i++) {
	print $i . "\n";
}
dobasok.pl
#!/usr/bin/perl
 
for($i=0; $i<5; $i++) {
	dobas();
}
 
print "\n";
 
sub dobas {
    print int(rand(6))+1 . " ";
}

while ciklus

while.pl
#!/usr/bin/perl
 
$a = -1;
while($a != 0) {
	print "Szám: ";
	$a = <STDIN>;
}

do-while

dowhile.pl
#!/usr/bin/perl
 
my $szam;
do {
	print "Szám: ";
	$szam = <STDIN>
} while  ($szam != 0);