Před necelými čtyřmi měsíci byl Steven Deobald jmenován novým výkonným ředitelem GNOME Foundation. Včera skončil, protože "nebyl pro tuto roli v tento čas ten pravý".
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 156 (pdf).
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.8.1. Přehled novinek v Changelogu.
Včera večer měl na YouTube premiéru dokumentární film Python: The Documentary | An origin story.
Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.
Ubuntu nově pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 4. snapshot Ubuntu 25.10 (Questing Quokka).
Řada vestavěných počítačových desek a vývojových platforem NVIDIA Jetson se rozrostla o NVIDIA Jetson Thor. Ve srovnání se svým předchůdcem NVIDIA Jetson Orin nabízí 7,5krát vyšší výpočetní výkon umělé inteligence a 3,5krát vyšší energetickou účinnost. Softwarový stack NVIDIA JetPack 7 je založen na Ubuntu 24.04 LTS.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) spolu s NSA a dalšími americkými úřady upozorňuje (en) na čínského aktéra Salt Typhoon, který kompromituje sítě po celém světě.
Společnost Framework Computer představila (YouTube) nový výkonnější Framework Laptop 16. Rozhodnou se lze například pro procesor Ryzen AI 9 HX 370 a grafickou kartu NVIDIA GeForce RTX 5070.
Google oznamuje, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Tato politika bude implementována během roku 2026 ve vybraných zemích (jihovýchodní Asie, Brazílie) a od roku 2027 celosvětově.
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.