CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.
Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.
Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.
Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.
Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).
Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.
TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.
Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.
Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.
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.