Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.
Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).
Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.
NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
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.