abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 07:11 | IT novinky

    Elon Musk na akci We, Robot (YouTube, 𝕏) představil Robotaxi, Robovan a vylepšeného Tesla Bota (Optimus).

    Ladislav Hagara | Komentářů: 18
    dnes 06:33 | IT novinky

    Internet Archive je offline (𝕏, Bluesky, Mastodon‪). Unikly údaje 31 milionů uživatelů. Probíhal / probíhá na něj DDoS útok.

    Ladislav Hagara | Komentářů: 0
    dnes 05:22 | Komunita

    Alyssa Rosenzweig se v příspěvku na svém blogu rozepsala o hraní AAA her na Asahi Linuxu. Na YouTube je záznam její včerejší přednášky na XDC 2024 (X.Org Developer's Conference).

    Ladislav Hagara | Komentářů: 5
    dnes 04:55 | IT novinky

    Vláda schválila Národní polovodičovou strategii: Česká republika má velký potenciál stát se významným hráčem v oblasti výroby čipů, zejména v evropském měřítku. Využít tento potenciál je cílem Národní polovodičové strategie, kterou připravilo Ministerstvo průmyslu a obchodu ve spolupráci s experty, a která navazuje na evropský Akt o čipech.

    Ladislav Hagara | Komentářů: 2
    včera 18:11 | Zajímavý software

    V lete vyšiel Aeonwave 4.0, ktorý niekoľkonásobne menej vyťažuje procesor pri interpretácií priestorového zvuku než OpenAL Soft. Autor hľadá prispievateľov do knižnice libaaxopenal za účelom pridania ALC_EXT_EFX rozšírení využívaných napr. v hre Doom 3 cez port Dhewm3 v Linuxe.

    atirage21 | Komentářů: 5
    včera 15:33 | Nová verze

    Linuxová distribuce Ubuntu 24.10 „Oracular Oriole“ byla vydána. Jde o průběžné vydání s podporou 9 měsíců. Obsahuje mj. Linux 6.11 či GNOME 47 s několika odkazy na první vydání Ubuntu (4.10 „Warty Warthog“) před 20 lety. K dispozici jsou také oficiální deriváty s odlišnými výchozími desktopovými prostředími anebo balíky aplikací.

    Fluttershy, yay! | Komentářů: 2
    včera 13:55 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno v nové major verzi 2.0 (YouTube). Důležité změny v Migration Guide.

    Ladislav Hagara | Komentářů: 3
    včera 13:33 | Nová verze

    Apache Tomcat (Wikipedie) slaví 25 let. Při té příležitosti byla vydána nová verze 11.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 24.09.0. Přehled novinek v poznámkách k vydání. O3DE má nového maskota: Odie.

    Ladislav Hagara | Komentářů: 0
    9.10. 21:11 | Humor

    Kdo chce podpořit společnost Nintendo v jejím boji proti open source softwaru (Ryujinx, yuzu, …), může si koupit Nintendo budík Alarmo za 100 dolarů. Za jak dlouho bude na budík naportován Doom?

    Ladislav Hagara | Komentářů: 22
    Rozcestník

    Dotaz: Perl a uninitialized value

    David Watzke avatar 2.12.2006 13:39 David Watzke | skóre: 74 | blog: Blog... | Praha
    Perl a uninitialized value
    Přečteno: 153×
    Zdravím. Mám v Perlu takovou funkci:
    sub check_pkgname($) {
    	($_[0] =~ m/^\w+(|(\-|\w)*\w)(|\/\w+(|(\-|\w)*\w))$/)
    	? $pkg = $_[0]
    	: die "Not a valid package name: $_[0]!";
    }
    a teď když spustím check_pkgname("něco"), tak to proběhne. Když to regexpu neodpovídá, tak vypíše:
    Not a valid package name: (whatever)! at ./test.pl line 7.
    Proč tam píše "at ./test.pl line 7"? To nechci.

    Ovšem horší je tohle: jakmile se pokusím o check_pkgname($_[0]), tak hodí:
    Use of uninitialized value in pattern match (m//) at ./test.pl line 7.
    Use of uninitialized value in concatenation (.) or string at ./test.pl line 7.
    Not a valid package name: ! at ./test.pl line 7.
    Napadlo mě zkusit ještě check_pkgname(int $_[0]), to hodí:
    Use of uninitialized value in int at ./test.pl line 12.
    Co dělám špatně?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

    Odpovědi

    David Watzke avatar 2.12.2006 13:53 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Když to regexpu neodpovídá, tak vypíše:
    Not a valid package name: (whatever)! at ./test.pl line 7.
    Proč tam píše "at ./test.pl line 7"? To nechci.
    Sorry, nevěděl jsem, že je to běžný chování funkce die(), jsem trouba :-D
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.12.2006 09:13 mlz
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    V pripade, ze je u die "\n", tak at xxx.pl line N nevypise tedy die "Not a valid package name: (whatever)!\n";
    David Watzke avatar 4.12.2006 14:36 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Aha, díky.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    David Watzke avatar 2.12.2006 22:43 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Zjevně jsem dělal pěknou blbost. Ve funkci je asi nutný přiřadit si argumenty do proměnných pomocí shiftu, že?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    3.12.2006 00:15 amnesiac
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Prirazovani paramteru do promennych s tim nema nic spolecneho. Zrejme volas check_pkgname($_[0]), kdyz $_[0] obsahuje nedefinovanou hodnotu.

    Pokud volam $pkgname="nazev-1-2/balicku-xyz-321"; check_pkgname($pkgname);, tak mi to probehne korektne.

    Btw. moc jsem nepochopil proc je v tom regularnim vyrazu ^\w+(|(\-|\w)*\w)(|\/\w+(|(\-|\w)*\w))$ to \w za (\-|\w)* ;-)

    David Watzke avatar 3.12.2006 00:18 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Btw. moc jsem nepochopil proc je v tom regularnim vyrazu ^\w+(|(\-|\w)*\w)(|\/\w+(|(\-|\w)*\w))$ to \w za (\-|\w)* ;-)
    Protože chci aby to prošlo jen tehdy, když string bude končit na '\w' a ne '-'.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.12.2006 11:15 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    A nebylo by čitelnější
    /^\w(?:[-\w]*\w)?(?:\/\w(?:[-\w]*\w)?)?$/
    To (?:) místo () je jen kvůli rychlosti - neplní se $n registry. Pokud by ty slova nikdy nebyli méně než dvouznakové, tak by se dokonce dalo napsat
    /^\w[-\w]*\w(?:\/\w[-\w]*\w)?$/
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    David Watzke avatar 4.12.2006 14:41 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Díky, určitě bylo. Co je $n registr?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    4.12.2006 15:00 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Perl a uninitialized value
    Viz perlvar
           $<digits>
                   Contains the subpattern from the corresponding set of capturing
                   parentheses from the last pattern match, not counting patterns
                   matched in nested blocks that have been exited already.
                   (Mnemonic: like \digits.)  These variables are all read-only
                   and dynamically scoped to the current BLOCK.
    
    Jinak \1..\9 by se mělo používat jen v m-regexpu nebo na levé straně (první parametr) s-regexpu.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.