Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.
Tentokrát bych potřeboval poradit jak převést string (v proměnný) "-abc" do pole na "-a -b -c"... přemýšlel jsem o cyklu, jenže za prvé nevím jak získat počet znaků v proměnný a za druhý jak z proměnný vypsat jen n-tej znak ... no tohle jsem zatím vymyslel:
for $no ( 1 .. (počet znaků v proměnný $_) ) {
push @sopts, $_; # ale $_ donutit tisknout jen $no-tej znak
}Nebo že by se to dalo udělat pomocí regexpu? To ale nevím, nic mě nenapadlo...
No, není to žádný zázrak, ale mělo by to fungovat:
#!/usr/bin/perl -w
my @attrib = ();
my $i = 0;
$attributy = $ARGV[0];
$attributy =~ s/^\-//;
$length = length($attributy);
while ($i < $length){
$attrib[$i] = "-" . substr($attributy, $i++, 1);
print "attrib $i = $attrib[$i]\n";
}
Odborníky na PERL prosím o shovívavost ... 
$aaa="-abc";
while ($aaa) {
push (@uuu, chop $aaa);
}
a v poli @uuu mas vsechny znaky z $aaa vcetne podtrzitka v opacnem poradi.
Funkce vracející délku řetezce je length(řetězec). Získání podřetězce z řetězce dělá funkce substr(řetězec, start, kolik). Pomocí regexpu by to šlo také, ale zbytečně složitě a neefektivně.
Nevím, jestli je dobré učit se programovat zrovna na Perlu…Líbí se mi
Funkce vracející délku řetezce je length(řetězec).
A já vůl zkoušel lenght. Furt se mi to plete
Všem: díky za odpovědi 
Zkoušel a Perl už IMHO vůbec nejde dohromadyNevím, jestli je dobré učit se programovat zrovna na Perlu…Líbí se mi… A já zkoušel lenght. Furt se mi to plete
![]()
Nechci nikoho podceňovat, ale myslím, že nejde metodou pokus–omyl přijít na to, že $_ je implicitní prostor pro vstup, výstup a vyhledávání, $, je výstupní oddělovač polí, @_ jsou parametry podprogramu, %ENV jsou proměnné prostředí atd. atp. Aspoň referenční manuál by to chtělo
Taky můžu doporučit knížku Perl pro zelenáče od Pavla Satrapy (a to nejenom pro zelenáče
).
Mně se Perl taky líbil, ale když jsem se po nějaké době k nějakému skriptu vrátil, zjistil jsem, že Perl je write-only
Pak jsem napsal skoroprogram, který obsahoval třeba toto:
foreach $prom (sort(keys(%{$zdroje{$jmeno}})))
{
if ((substr($prom,0,1) eq '') || (substr($prom,0,1) !~ /^\w/i))
{
print SPECIALNI "<h3 class='promenna'>$prom</h3>\n";
$text = $zdroje{$jmeno}{$prom};
do {
$REcount = ($text =~ s/\?\{([^}:]*)\}/&_nahraditGlobals($1)/ge);
$REcount += ($text =~ s/\?\{([^}:]*):([^{}]*(?:(?:\$|\*)\{[^{}]*(?:\*\{[^}]*\}[^{}]*)*[^{}]*\}[^{}]*)*[^{}]*)\}/&_nahraditGlobalsParametr($1,$2,$blok)/ge);
} while ($REcount > 0);
$text =~ s/(\$\{[^}:]*\})/<span class='vypisPromenne'>$1<\/span>/g;
$text =~ s/(\$\{[^}:]*:[^{}]*(?:\*\{[^}]*\}[^}]*)*\})/<span class='vypisPromenne'>$1<\/span>/g;
print SPECIALNI $text;
}
else …
A to byla poslední věc, kterou jsem v Perlu napsal
)
[ivok@zero ~]$ perl -e 'print join " -", split //, "-abc"; print "\n"' - -a -b -c
Krátké na zápis, ale po přečtení usoudím, zda to rozdělí po písmenkách nebo schramstne celý string najednou, snad jen podle toho, že používat split na to, abych dostal celý řetězec, by byla blbost
Teď už zbývá jen nějak logicky zdůvodnit, proč v Javě, která IMHO vede naopak k tomu psát čitelné programy (ale někteří se úspěšně brání
) se String.split("") chová úplně stejně, a to bez jakékoliv zmínky v dokumentaci. Asi to bude tím, že programátor v Javě neuvidí žádnou výhodu v tom, že může cyklus přepsat do jednoho řádku programu a nenapadne ho zkoušet, jak se rozdělí řetězec, když se má dělit v místě, kde je nic
Pro Davida: to, co předvedl ivok, je myslím to správné perlovské řešení (přestože Perl se chlubí tím, že každá věc jde napsat mnoha způsoby). Takže pokud se chcete naučet přemýšlet o tom, jak sestavovat algoritmy, Perlu bych se zatím vyhnul. Pokud se naopak chcete naučit přemýšlet jako hacker (v původním smyslu slova), s minimem nástrojů dosahovat maximálních výsledků a nástroje používat ne zrovna obvyklým způsobem (ale přesto elegantně), je Perl ta pravá volba.
Pokud se naopak chcete naučit přemýšlet jako hacker (v původním smyslu slova), s minimem nástrojů dosahovat maximálních výsledků a nástroje používat ne zrovna obvyklým způsobem (ale přesto elegantně), je Perl ta pravá volba.That's what I'm talkin' about, yo
['-'+x for x in '-abc'[1:]]
I to se bude hodit... ale až časem, až budu Perl guru
a zkoumám; takže jsem to nezjistil metodou pokus omyl. Zkoušel jsem prošmejdit ty články, Google a najít to, ale nic... Btw, hustej program
, skoro jako ten Perl / Unix hacker na wikipedii od Larryho
, ale dík.
Tiskni
Sdílej: