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í
×
včera 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 0
včera 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 1
včera 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
včera 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
včera 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

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

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
včera 00:08 | Pozvánky

V sobotu 18. 2. se v Praze v prostorách VŠE uskuteční od 9:30 již 4. ročník největší české konference o open source redakčním systému WordPress (WP) - WordCamp Praha 2017.

… více »
smíťa | Komentářů: 0
19.1. 23:58 | Komunita

Kryptoměnová komunita zahájila nový rok spuštěním projektu Blockchain.cz, jehož cílem je kolektivně nalézt ideální překlad pro čím dál frekventovanější slovo „blockchain“. Přispět návrhem může kdokoli. Sběr bude trvat až do konce září 2017. Následně bude probíhat dvoutýdenní veřejné hlasování, které bude zakončeno výběrem toho nejlepšího návrhu.

xHire | Komentářů: 8
19.1. 15:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno je celkově 270 bezpečnostních chyb. V Oracle Java SE je například opraveno 17 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 16 z nich. V Oracle MySQL je opraveno 27 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 5 z nich.

Ladislav Hagara | Komentářů: 0
19.1. 02:48 | Nová verze

Po půl roce od vydání verze 9.0 (zprávička) byla vydána verze 10.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 35
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (73%)
 (3%)
 (11%)
Celkem 343 hlasů
 Komentářů: 24, poslední 17.1. 10:14
    Rozcestník
    Reklama

    Dotaz: Split v PERL

    8.9.2009 14:34 Saky
    Split v PERL
    Přečteno: 518×
    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 | Praha
    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 | Praha
    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 | Praha
    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: 19
    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.