abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 02:00 | Nová verze

Byl vydán Debian 9.1, tj. první opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.9, tj. devátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 0
včera 15:50 | Zajímavý článek

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice zveřejnila čtyřiačtyřicetistránkovou výroční zprávu za rok 2016. K dispozici je ve formátu pdf ve vysokém (21,68 MB) a nízkém (7,1 MB) rozlišení. Zpráva byla vytvořena ve Scribusu.

Ladislav Hagara | Komentářů: 0
včera 14:40 | Zajímavý software

Mozilla.cz informuje, že Firefox Focus pro Android, velmi jednoduchý prohlížeč zaměřený na anonymní prohlížení, dosáhl milionu stažení. Firefox Focus blokuje sledující prvky a reklamy a při ukončení automaticky smaže všechna uložená data stránek, historii prohlížení a cookies.

Ladislav Hagara | Komentářů: 2
včera 14:20 | Komunita

Vyplněním dotazníku na Formuláře Google lze ovlivnit výběr výchozích aplikací v Ubuntu 18.04 LTS. Podrobnosti v příspěvku Dustina Kirklanda na Ubuntu Insights [reddit].

Ladislav Hagara | Komentářů: 1
21.7. 11:30 | Komunita

Etherpad (Wikipedie), svobodný online webový textový editor umožnující spolupráci v reálném čase, se stal oficiálním projektem organizace Software Freedom Conservancy (Wikipedie). Vývojáři Etherpadu se tak mohou stejně jako vývojáři dalších projektů soustředit pouze na vývoj softwaru a vše kolem zařídí Software Freedom Conservancy. Spuštěna byla instance Etherpadu pad.sfconservancy.org.

Ladislav Hagara | Komentářů: 2
21.7. 10:40 | Zajímavý článek

Lukáš Růžička se v článku Workrave ve Fedoře aneb jak si nevytunelovat karpál na MojeFedora.cz věnuje aplikaci Workrave (Wikipedie) na sledování času stráveného na počítači, která může pomoci vyhnout se negativním účinkům práce s počítačem (RSI, CTS), nebo je alespoň výrazně zmírnit.

Ladislav Hagara | Komentářů: 1
21.7. 10:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Shadow Warrior: Special Edition běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 2
20.7. 23:11 | Nová verze

Byla vydána verze 2.4.0 analyzátoru síťového provozu Wireshark. Jedná se o první stabilní verzi nové řady 2.4. Podrobný přehled novinek v poznámkách k vydání. V červnu proběhla konference SharkFest’17 US věnovaná Wiresharku. Záznamy přednášek jsou k dispozici na YouTube.

Ladislav Hagara | Komentářů: 1
20.7. 13:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřeného přístupu na 142. brněnský sraz, který proběhne v pátek 21. července od 18:00 hodin ve Sport Centru Srbská (Srbská 4). Od 19:00 je pro zájemce zamluveno hřiště na plážový volejbal.

Ladislav Hagara | Komentářů: 0
20.7. 12:34 | Bezpečnostní upozornění

V GNOME Soubory, původně Nautilus, konkrétně v generování náhledů exe, msi, dll a lnk souborů byla nalezena a opravena bezpečnostní chyba CVE-2017-11421 s názvem Bad Taste. Při otevření složky obsahující tyto soubory může být spuštěn VBScript obsažen v názvech těchto souborů.

Ladislav Hagara | Komentářů: 3
Těžíte nějakou kryptoměnu?
 (3%)
 (0%)
 (17%)
 (80%)
Celkem 30 hlasů
 Komentářů: 0
    Rozcestník

    Dotaz: Nelogicke chovani v perlu

    27.11.2009 23:48 Mr.S1lent.cz
    Nelogicke chovani v perlu
    Přečteno: 182×
    Zdravim, mam tu jeden zahadny problem, nad kterym dumam uz asi cely den...

    Zde je cast DB modulu: http://www.pastebin.cz/27127 a zde priklad volani metody _view: http://www.pastebin.cz/27128

    a ted problem - do terminalu mi to vypise hodnotu pouze u test1, avsak test2 - 4 zustavaji empty, vypisy z Dumperu jsou konstantni, vedel by nekdo, kde muze byt chyba? Me absolutne nic nenapada, nechapu, jak se to takhle vubec muze chovat....

    Řešení dotazu:


    Odpovědi

    28.11.2009 00:54 buff | skóre: 10 | blog: buff
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Problém je IMHO v tom whilu. Ten první while to projede nakonec a ty další už vrací false v první iteraci. Potřeboval bys vyresetovat ten prstíček, co ukazuje na aktuální řádek.
    28.11.2009 00:57 buff | skóre: 10 | blog: buff
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Snad seek? Hope it helps. Zkus, mně se to zkoušet nechce ;-)
    28.11.2009 07:32 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Doporučuju ty věci dávát dohromady s dotazem a ne na pastebin. Za 2 roky až někdo na tohle náhodou narazí, tak už nepochopí co se řešilo.

    Takže:
    sub new {
        my ( $pkg, $db ) = @_;
        my $self = bless {}, $pkg;
        $self->{_db} = "db/$db.db";
        open( $self->{_dbhandler}, $self->{_db} ) or die "DB $db.db not open\n";
        return $self;
    }
    sub _view {
        my ( $self, $arg ) = @_;
        my $dbhandler = $self->{_dbhandler};
        while ( my $line = <$dbhandler> ) {
            if ( $line =~ /( *)$arg( *)\=( *)'(.*?)';( *)/ ) {
                return $4;
            }
        }
        return undef;
    }
    $self->{_db} = new TAI::DB( 'status' );
    print Dumper( $self->{_db} );
    print "test1: " . $self->{_db}->_view( 'task' ) . "\n";
    print Dumper( $self->{_db} );
    print "test2: " . $self->{_db}->_view( 'task' ) . "\n";
    print Dumper( $self->{_db} );
    print "test3: " . $self->{_db}->_view( 'task' ) . "\n";
    print "test4: " . $self->{_db}->_view( 'task' ) . "\n";
    No a k tomu dotazu, myslím si to co ostatní: soubor projíždíte po řádkách, takže nebude vracet v každém volání totéž. Dá se to řešit různě, ale myslím, že děláte tu celou věc trochu přes ruku, co přesně má být účelem toho kódu?
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.11.2009 17:14 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Ucelem toho kodu - modulu - je vytvorit takovy obsluhovac souborů, ktere mi slouzi jako text/plan uloziste - datazabaze pouzivam jen tehdy, pokud je to nevyhnutelne nutne, tudiz to resim takhle. Podle vasich reakci usuzuju, ze si ten filehandler "pamatujue", kde naposledy skoncil a pote projizdeni souboru po radku pokracuje prave od toho mista, je to tak? :-) Jinak uz jdu na study toho seek, moc dekuji, verim, ze mi to pomuze vyresit problem :-))
    28.11.2009 17:30 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Tak, problem je vyresen, seek mi opravdu pomohl :-) Moc dekuji - tady neslo o to, ze bych nevedel, kde hledat, ale ja nevedel, co hledat, jeste jednou diky :-))
    28.11.2009 18:03 Nick
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    No vidíš. A příště nenadávej na Perl a hledej nejdřív problém mezi klávesnicí a židlí :-)
    29.11.2009 20:13 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    No, možností jak tohle udělat je hodně a upřímně seek je jeden z těch méně šťastných.

    Nejjednodušší je dát open/close do rutiny _view, čili pokaždé soubor otevřít, najít řádek a potom ho zavřít. Je to stejně efektivní jako seek, ale čistější a robustnější vůči přepisu/smazání souboru.

    Další možnost je v konstruktoru soubor kompletně přečíst a uložit si páry klíč=hodnota (pokud chápu dobře, tak ten soubor má takovou strukturu) do hashe a ve _view pouze vracet hodnoty z hashe. Případně dodělat něco jako reload, kterej to načte na požádání znova. Tento přístup je nesporně efektivnější co se týče počtu čtení souboru.

    Třetí možnost je se porozhlédnout po CPANu, co například Config::Tiny a další?

    Jinak, databáze není nevyhnutelně špatná věc.

    Ještě pár postřehů k tomu kódu:
    if ( $line =~ /( *)$arg( *)\=( *)'(.*?)';( *)/ ) {
                return $4;
            }
    
    je lépe zapsat jako
    if ( $line =~ /\A\s*\Q$arg\E\s*\=\s*'(.*?)';\s*\Z/ ) {
                return $1;
            }
    
    (použití \s pro prázdné znaky, \A ... \Z pro ohraničení a \Q ... \E pro quotování proměnné. BTW regexp pro načtení celého souboru by mohl vypadat asi takto nějak
    my %config;
    open (my $soubor, '<', 'soubor.txt');
    {
        unset $/;
        %config = (<$soubor> =~ /^\s*(\Q$arg\E)\s*\=\s*'(.*?)';\s*?/xmsg);
    }
    
    Místo return undef; je kratší (a správnější) použít jen return;.

    Místo open...or die je modernější metoda use autodie.
    In Ada the typical infinite loop would normally be terminated by detonation.

    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.