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 16:55 | IT novinky

    Facebook má nové logo. Poznáte rozdíl?

    Ladislav Hagara | Komentářů: 1
    dnes 15:55 | Nová verze

    Byla vydána nová verze 7.2 v Javě napsané aplikace pro komplexní návrh rozmístění nábytku a dalšího vybavení v interiérech Sweet Home 3D. Vyzkoušet lze online verzi. Před dvěma týdny vyšla placená verze pro chytré telefony a tablety (App Store, Google Play).

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Pozvánky

    Zítra 23. září proběhne Maker Faire Mladá Boleslav, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

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

    Byla vydána beta verze Ubuntu 23.10 s kódovým názvem Mantic Minotaur. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 23.10 mělo vyjít 12. října 2023.

    Ladislav Hagara | Komentářů: 9
    včera 11:22 | Zajímavý článek

    Josef Průša informuje o nových verzích firmwarů pro tiskárny Original Prusa, 5.0.0 pro MK4 a MK3.9 a 5.1.0-alpha1 pro MINI, díky kterým jsou tiskárny mnohem rychlejší.

    Ladislav Hagara | Komentářů: 0
    včera 09:11 | Nová verze

    Mastodon (Wikipedie), svobodná federalizovaná sociální síť, byl vydán ve verzi 4.2. Z novinek je vypíchnuto vylepšené vyhledávání.

    Ladislav Hagara | Komentářů: 8
    včera 08:55 | Zajímavý článek

    Ben Hawkes publikoval pod názvem The WebP 0day analýzu bezpečnostní chyby CVE-2023-4863 v knihovně WebP / libwebp s řadou zajímavých odkazů. Pravděpodobně se jedná o stejnou chybu jako BLASTPASS (CVE-2023-41064 a CVE-2023-41061) v macOS, iOS, iPadOS a watchOS. Zpracování (zobrazení) speciálně připraveného obrázku nebo přílohy vedlo ke spuštění útočníkem připraveného kódu.

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

    Myš je pro kočku: Prohlížeče je dalším dílem ze série článků Myš je pro kočku, kde Edvard Rejthar ukazuje, jak lze počítač ovládat bez myši. Používáte ve webových prohlížečích zkratky Ctrl+(Shift)+Tab, Ctrl+(Shift)+PgDn/PgUp, F6, (Shift)+Alt+Enter nebo F7?

    Ladislav Hagara | Komentářů: 9
    21.9. 14:33 | Nová verze

    Vývojáři mobilní Datovky prosí o pomoc s testováním beta verze mobilní Datovky s novým grafickým rozhraním, podporou pro tmavý režim a podporou pro VoDZ. Aplikace je zatím dostupná pouze pro zařízení Android a je umístěna v samostatném instalačním kanále Datovka Beta. Tento kanál slouží pro testovaní nové funkcionality a grafického uživatelského rozhraní. Datovka Beta se instaluje jako samostatná aplikace s vlastními daty, která

    … více »
    Ladislav Hagara | Komentářů: 0
    21.9. 13:22 | Zajímavý software

    Harlequin byl vydán ve verzi 1.0.0. Jedná se o TUI (Text User Interface) IDE (Integrated Development Environment) k systému pro správu SQL OLAP databází DuckDB.

    Ladislav Hagara | Komentářů: 0
    Knihy s linuxovou tematikou
     (19%)
     (15%)
     (50%)
     (27%)
    Celkem 272 hlasů
     Komentářů: 11, poslední 17.9. 19:19
    Rozcestník

    Dotaz: Split v PERL

    8.9.2009 14:34 Saky
    Split v PERL
    Přečteno: 535×
    Zdravím..
    Potřeboval bych poradit, jak v PERL rozdělit řádek a načíst slova do samostatných proměnných...
    Mám URL ze souborem http://www.i-netportal.cz/input.txt . Ten obsahuje dejme tomu 4 slova, oddělená mezerami. Pak mám v PERL něco takového, aby mi na příkaz zobraz vypsal obsah souboru:
     
     if ($arg =~ /!zobraz/i) {   
     my $url = 'http://www.i-netportal.cz/input.txt';
          use LWP::Simple;
     my $content = get $url;
     die "Couldn't get $url" unless defined $content;
        
     print "Soubor obsahuje slova: $content\n";
     }
     
    Potřeboval bych však doplnit pravděpodobně funkcí split rozdělení na jednotlivá slova, abych mohl následně použít výstup "!Soubor obsahuje: $1slovo, dále za ním $2slovo,.... " Tedy vypisovat je jednotlivě.
    Zkoušel jsem něco jako ($slovo1, $slovo2, $slovo3) = split(" ", $content); , avšak neúspěšně.
    Díky za každou radu :-)

    Řešení dotazu:


    Odpovědi

    Řešení 1× (saky)
    8.9.2009 15:06 ams
    Rozbalit Rozbalit vše Re: Split v PERL

    Funguje to presne tak jak jste to napsal, mate ale chybu ve vypisu: misto $slovo1 pouzivate $1slovo atd. Jinou moznosti je pouzit pole misto skalaru a napsat neco takoveho:

    @slovo = split(" ", $content);

    print "Soubor obsahuje: $slovo[0], dale za nim $slovo[1],  pak  $slovo[2] a nakonec $slovo[3].\n";

    Řešení 1× (saky)
    8.9.2009 15:14 Saky
    Rozbalit Rozbalit vše Re: Split v PERL

     Tak mám pravděpodobně chybu ve formátu, jelikož :

     

            if ($arg =~ /!zobraz/i) {   

        my $url = 'http://www.i-netportal.cz/input.tx';

          use LWP::Simple;

      my $content = get $url;

      die "Couldn't get $url" unless defined $content;

       @slovo = split(" ", $content);

         print "Soubor obsahuje: $slovo[0], dale za nim $slovo[1],  pak  $slovo[2] a nakonec $slovo[3].\n";  

         }

    Nefunguje.. :(. Kde může být chyba?

     

    8.9.2009 15:53 voda | skóre: 28
    Rozbalit Rozbalit vše Re: Split v PERL
    Není to chybějícím t v http://www.i-netportal.cz/input.txt. Jinak vypisuje to něco? Mě to funguje správně.
    8.9.2009 16:00 Saky
    Rozbalit Rozbalit vše Re: Split v PERL

     Písmenko se ztratilo při CTRLC+C / V :-)

    Obsah souboru mi to vypíše v pořádku, ale jakmile vložím funkci split, aplikace ani nenaběhne, bez jakékoliv chyby. Možná je chyba už někde výše, ale kód je poměrně dlouhý...

    Zvláštní, že bez toho bez problému.. :( Právě jsem si myslel, zda je funkce vložena na správném místě, jelikož to spadne při vložení v jakémkoliv formátu..

    Řešení 1× (saky)
    8.9.2009 16:09 voda | skóre: 28
    Rozbalit Rozbalit vše Re: Split v PERL
    Zkuste tam přidat:
    use strict;
    use warnings;
    use diagnostics;
    
    jestli to něco nevypíše pak. Popřípadě kód zjednodušit tak, ať se chyba hledá lépe.
    8.9.2009 16:10 ams
    Rozbalit Rozbalit vše Re: Split v PERL

    Nemate nahodou v tom souboru use strict? Zkuste misto @slovo = split ...    napsat  my @slovo = split ...;

    8.9.2009 16:33 Saky
    Rozbalit Rozbalit vše Re: Split v PERL

     Tak to je ono :-)

    Supeeeer, funguje :-)

    Bez problému to třídí slova dle obou verzí.

    Děkuji moc za rady :)

    8.9.2009 18:03 voda | skóre: 28
    Rozbalit Rozbalit vše Re: Split v PERL
    Tak při takovéto chybě mi to vypisuje: Global symbol "@slovo" requires explicit package name at ./tmp/perl.pl line 10
    8.9.2009 16:23 Saky
    Rozbalit Rozbalit vše Re: Split v PERL

     Tak jsem zkoušel jednak zapnout podrobný výpis chyb, tam se až na pár drobností nic neprojeví.

    Při zadání funkce split se aplikace vůbec nespustí, tudíž žádná chyba:(.

    Zkoušel jsem i na hradit uvozovky lomítky, avšak také bez úspěchu...

    Zkrátit jej asi nedokáži, teprve s tím experimentuji a asi bych jej nedokázal natolik očesat, abych chybu našel.. :(

    Pokud by byl někdo ochoten pomoci úpravou, jistě bych mohl i já něčím přispět (FTP prostor, SQl databázi...)

    Už si opravdu nevím rady :)

    8.9.2009 16:09 Chulda | skóre: 20
    Rozbalit Rozbalit vše Re: Split v PERL
    Ted jsem se nekde docetl, ze na parsovani mezery jsou potreba lomitka (regularni vyraz) namisto uvozovek split(/ /, $content);
    8.9.2009 16:17 ams
    Rozbalit Rozbalit vše Re: Split v PERL

    Je pravda, ze split ocekava jako prvni argment regexp, ale parametr " " je zvlastni pripad, ktery funguje jinak nez / /. Prectete si perldoc -f split:
    As a special case, specifying a PATTERN of space (' ') will split on white space just as "split" with no arguments does. Thus, "split(' ')" can be used to emulate awk's default behavior, whereas "split(/ /)" will give you as many null initial fields as there are leading spaces.

    22.12.2010 10:35 apokalypso77
    Rozbalit Rozbalit vše Re: Split v PERL
    Dobrý den, mám prolém rozdělit @list na jednotlivé části! píše mi to do příkazového řádku neco mezera neco, ale nevýhodou je že je ten počet pokaždý jiný proto si ten počet nemohu definovat a potřeboval bych, aby to něco bylo pokaždý na samotném řádku

    v přikazovým řádku to vypadá takto @neco neco neco neco +neco @neco takže to nemu rozdělit podle nějakýho znamínka nic poradil by mi někdo ? když tak pls na email

    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.