Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.
Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.
Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.
Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu
… více »Společnost Valve zveřejnila (GitLab) nákresy ovladače Steam Controller a puku. Pro všechny, kdo by jej chtěli hacknout nebo modifikovat, případně pro ně navrhnout nějaké příslušenství. Pod licencí Creative Commons (CC BY-NC-SA 4.0).
PHP bylo dlouho distribuováno pod vlastní licencí – s výjimkou částí spadajících pod licenci Zend Engine. Po několikaleté práci se povedlo PHP přelicencovat na 3bodovou licenci BSD.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube). Na Linuxu je vedle Qt frontendu nově k dispozici také GTK4 / libadwaita frontend.
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 3.1 specifikace OpenCL (Open Computing Language). OpenCL je průmyslový standard pro paralelní programování heterogenních počítačových systémů.
Homebridge pro integraci chytrých domácích zařízení byl vydán ve verzi 2.0.0. Nově vedle protokolu HomeKit Accessory Protocol (HAP) podporuje standard chytré domácnosti Matter.
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.