Perl - cvičení 2

Víceřádkové řetězce

print <<PRVNI, 123 , <<DRUHY x 3;
abc
PRVNI
xyz
DRUHY

$y='abc';
$x = <<KONEC.' ----- '.<<'KONEC2';
aaaaa
bbbbb
$y
KONEC
cccc
$y
KONEC2

print $x


print <<`KONEC`;
echo 'Aktualni adresar'
pwd
echo 'Obsah adresare:'
ls -l
KONEC

Automatické konverze mezi řetězci a čísly

$x = 123;
$y = " 123.34sadasd";
print $x + $y;

$x = "-1e3";
$y = " 123.34sadasd";
print $x + $y;

$x = "0777";

print $x,"\n";

$x= oct("0777");
print $x,"\n";

$x = 0777;
print $x,"\n";

Pole a seznamy

Hashe

%dny = ('pondeli', 1 , 'utery', 2, 'streda', 3,
        'ctvrtek', 4, 'patek', 5);

%dny = (pondeli => 1,
	utery => 2,
	streda => 3,
	ctvrtek => 4,
	patek => 5);

%dny = (abc abc => 1,  # špatně, má být 'abc abc'
        abc$abc => 2); # špatné, má být 'abc$abc' 

%dny = (pondeli, 1)    # varování
%dny = (pondeli => 1); # v pořádku

%hash = (1..1000);  # vytvoříme hash o 500 dvojicích
print scalar %hash; # vytiskne 315/512

$;='--';             # nastavíme oddělovač

$x = 1; $y = 2;
$hash{$x, $y} = 1;

$hash{'a', 'b'} = 1;

# %hash obsahuje klíče '1--2' a 'a--b';



@hash{'pondeli', 'utery'} = (1, 2);

$den = 'utery';
($pondeli, $utery) = @hash{'pondeli', $den};

%hash = (a => 97, b => 98, c => 99, d => 100, e => 101);

@klice = keys %hash;     # @klice obsahuje 'e', 'c', 'a', 'b', 'd'
@hodnoty = values %hash; # @hodnoty obsahuje 101, 99, 97, 98, 100



%hash = (a => 97, b => 98, c => 99, d => 100, e => 101);

while (($klic, $hodnota) = each %hash) {
     print "klíč $klic, hodnota $hodnota\n";
}

while ($klic = each %hash) {
     print "klíč $klic\n";
}