Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 159 (pdf).
Hru Warhammer: Vermintide 2 (ProtonDB) lze na Steamu získat zdarma napořád, když aktivaci provedete do pondělí 24. listopadu.
Virtualizační software Xen (Wikipedie) byl vydán v nové verzi 4.21. Podrobnosti v poznámkách k vydání a přehledu nových vlastností.
Evropská komise schválila český plán na poskytnutí státní pomoci v objemu 450 milionů eur (téměř 11 miliard Kč) na rozšíření výroby amerického producenta polovodičů onsemi v Rožnově pod Radhoštěm. Komise o tom informovala v dnešní tiskové zprávě. Společnost onsemi by podle ní do nového závodu v Rožnově pod Radhoštěm měla investovat 1,64 miliardy eur (téměř 40 miliard Kč).
Microsoft v příspěvku na svém blogu věnovaném open source oznámil, že textové adventury Zork I, Zork II a Zork III (Wikipedie) jsou oficiálně open source pod licencí MIT.
První prosincový týden proběhne SUSE Hack Week 25. Zaměstnanci SUSE mohou věnovat svůj pracovní čas libovolným open source projektům, například přidání AI agenta do Bugzilly, implementaci SSH v programovacím jazyce Zig nebo portaci klasických her na Linux. Připojit se může kdokoli.
Google oznámil, že Quick Share na Androidu funguje s AirDropem na iOS. Zatím na telefonech Pixel 10. Uživatelé tak mohou snadno přenášet soubory z telefonů s Androidem na iPhony a obráceně.
Byla vydána nová verze 8.5 (8.5.0) skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Přináší řadu novinek a vylepšení (URI Extension, Pipe Operator, Clone With, …). Vydána byla také příručka pro přechod z předchozích verzí.
Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Společnost Meta Platforms vyhrála ostře sledovaný spor o akvizici sítě pro sdílení fotografií Instagram a komunikační aplikace WhatsApp. Podle amerického soudu firma jejich převzetím neporušila antimonopolní zákon, protože si tak nemonopolizovala trh sociálních sítí. Žalobu na Metu podala před pěti lety americká Federální obchodní komise (FTC). FTC argumentovala, že Meta, tehdy známá jako Facebook, koupila tyto dvě společnosti v letech 2012 a 2014 proto, aby s nimi nemusela soutěžit.
Začneme tedy cykly, jako první uvedu cyklus for. For je cyklus řízený indexem pro předem známý počet provedení. Jeho syntaxe je zřejmá z následující ukázky a popisu :
for ($i=1;$i<=10;$i++)
|
Syntaxe: for ([výraz];[výraz];[výraz]) blok_příkazů;
(to, co je v hranatých závorkách, je nepovinné)
blok_příkazů = obsah složených závorek, skupina příkazů
|
Prvním parametrem je příkaz(výraz), který se provede jen jednou (většinou se používá pro nastavení počáteční hodnoty), následuje podmínka, která určuje počet opakování. A posledním parametrem je příkaz, který se vykoná při každem průbehu cyklu. Pokud neznáte Céčko, tak si asi kladete otázku, co dělá $i++;. Céčko zjednodušuje přiřazování - v PERLu je to stejné, viz tabulku.
| zápis | je ekvivalentem |
$i++; | $i=$i+1; |
$i--; | $i=$i-1; |
$i+=10; | $i=$i+10; |
$i-=10; | $i=$i-10; |
$i=$i**3; | $i=$i*$i*$i; |
(mocnina funkce, za ** se dává mocnitel)
Dalším cyklem je while, to je cyklus s podmínkou na začátku, tento cyklus se opakuje, dokud je podmínka pravdivá.
$i=-1;
|
Syntaxe: while (výraz) blok_příkazů [continue blok_příkazů2]
Tento cyklus bude probíhat, dokud nezadáte z klávesnice nulu. K cyklu while v PERLu existuje i jeho obrácený kamarád, který naopak probíhá, pokud není podmínka pravdivá:
$i=-1;
|
Syntaxe: until (výraz) blok_příkazů [continue blok_příkazů2]
Pro tvoření podmínek jsou nezbytné operátory, níže je krátký přehled.
<, > - menší než, větší než<=, >= - menší rovno, větší rovno==, != - rovno, nerovnolt, gt - delší než, kratší nežle, ge - delší nebo shodné, kratší nebo shodnéeq, ne - shodné, neshodné. - složení řetězcůx - opakování řetězců& - bitové AND| - bitové OR&& - logické AND|| - logické OROperátory použijeme i u podmíněného příkazu if a jeho opačného kamaráda unless:
if ($i<10)
|
Syntaxe: if (výraz) blok_příkazů1 [[eslif (výraz) blok_příkazů2] else blok_příkazů3]
Pokud je splněna podmínka (výraz je pravdivý), pak se vykoná blok_příkazů1. Pokud nebyla podmínka splněna, vyhodnotí se další výraz. Když byl pravdivý, provede se blok_příkazů2, v případě, že ani jedna podmínka nebyla pravdivá, vykoná se blok_příkazů3.
Unless pracuje podobně, jen postrádá část elsif a výraz vyhodnocuje opačně.
$retezec =~ s /vzorek/nový_text/ [i][m][s]
|
Prohledá $retezec na shodu se vzorek (může být i regulární výraz), pokud něco nalezne, nahradí to nový_text. Pokud přidáte i, znamená to, že nezáleží na velikosti písmen, m bere $retezec jako více řádků, s jako jeden. Pokud nic nenahradil, tak vrací 0 - nepravda.
$retezec =~ /vzorek/ [g][i][m][s]
|
Hledá v $retezec zadaný vzorek (regulární výraz). Pokud použijete g, může se shoda použít jako interátor ve skalárním kontextu. V seznamovém kontextu vrací seznam skládající se z podvýrazů vyhovujících podle závorek ve vzorku.
$retezec =~ tr /prohledávaný seznam/nahrazovací seznam/ [c][d]
|
Nahrazuje všechny znaky prohledávaného seznamu na znaky z nahrazovacího seznamu. Volitelné modifikátory: c doplňuje prohledávaný seznam, d maže všechny znaky, které k sobě nemají ekvivalent v nahrazovacím seznamu.
abs výraz; - vrací absolutní hodnotu výrazuatan2 y,x; - vrací arctangens y/x v rozsahu od -pi do picos výraz; - vrací kosinus výrazu (zadávaného v radiánech)exp výraz; - vrací e umocněné na výrazint výraz; - vrací celočíselnou část výrazulog výraz; - vrací přirozený logaritmus (základ = e) výrazurand [výraz]; - vrací náhodné desetinné číslo z intervalu <0;výraz), pokud není výraz zadán, nahradí ho 1sin výraz; - vrací kosinus výrazu (zadávaného v radiánech)sqrt výraz; - vrací druhou odmocninu výrazusrand výraz; - nastavuje výchozí hodnotu pro randtime; - vrací UNIXový čas, počet sekund od 1.1.1970 8:8chr výraz; - vrací znak o ASCII hodnotě výrazugmtime výraz; - konvertuje unixový čas na "lidský"; ve skalární souvislosti vrací čas v plném tvaru (den v týdnu, měsíc, den v měsíci, čas, rok), v seznamovém kontextu vrací tyto hodnoty rozložené (vteřina, minuta, hodina, den, msíc, rok, den v týdnu, den v roce, letní čas), měsíce začínají 0 - leden a dny v týdnu 0 - nedělehex výraz; - převádí hexadecimální výraz na desítkovou hodnotuPokud máme rozsáhlý kód, kde se některá část vícekrát opakuje čí je program mírně nepřehledný, tak použijeme podprogram (vlastní funkce).
Ten se tvoří příkazem sub:
sub název, [(prototyp)] blok_příkazů
|
Sub se píše na začátek programu. Pokud není zadán blok příkazů, bude se jednat jen o dopřednou deklaraci, kterou budeme muset níže popsat (doplnit). Parametry podprogramu se předávají ve speciálním poli @_. Pro definici požadovaných parametrů lze použít definici pomocí prototypu.
return [výraz]
|
ukončuje podprogram s výrazem jako návratovou hodnotou.
Podprogamy se následně volají dvěma možnými postupy. Buď název_podprogramu nebo &název_podprogramu.
Moduly (balíčky tvořené vámi nebo někým jiným) se do programu natahují příkazem use na začátku skriptu:
use jméno_modulu [[verze]seznam]
|
To je tak ze základů vše potřebné, ale plánuji článek o CGI v PERLu.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
=~? V článku to spadne z čistého nebe.
Proc u cyklu for neuvedete take variantu se seznamem?
for (@seznam) { prikazy }
Osobne daleko casteji pouzivam tuto konstrukci namisto te v clanku uvedene. Napriklad pro zpracovani vsech polozek hashe
for (keys %nejaky_hash) {
zpracuj_aktualni_klic
}
tr/src_list/dst_list/ nahrazuje jednotlive znaky ze src_list odpovidajicimi znaky z dst_list - prvni prvnim, druhy druhym, atd.