| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Keskustelut - Python / Ruby / Perl - Aliohjelman taulukko pääohjelmaanNationalAcrobat 15:55 16.7.09 Yritän saada aliohjelmassa tekstitiedostosta luetun pohjalta luodun taulukon kopioitua pääohjelman taulukkoon. Pääohjelma: Perl ... require "/var/www/cgi-bin/lue.pl"; ... my @tunnukset = &lue_taulukkoon("pelaajat") || @oletustunnukset; ... Aliohjelma: Perl ... my $datatiedosto = '/home/data/tunnukset.txt'; my @data = (); if ( (-e $datatiedosto) && (-s $datatiedosto) ) { if (open(DATA, "<$datatiedosto")) { @data = <DATA>; close(DATA); } } sub lue_taulukkoon { my ($osio) = @_; my (@taulu) = (); my $rivi; my $ok = 0; if ( ($osio) && (@data > 0) ) { foreach $rivi (@data) { # Osio alkaa tästä if ($rivi =~ /^\[$osio\]$/) { $ok = 1; } # Osion sisältö elsif ( ($rivi =~ /^([A-Z\.-]+)$/i) && ($ok == 1) ) { push(@taulu, $1); } # Osio loppuu tähän elsif ( ($rivi =~ /^\[\/$osio\]$/) && ($ok == 1) ) { return @taulu; } } } } 1; Taulukon @tunnukset sisältönä näyttäisi kuitenkin olevan taulukon @taulu solujen lukumäärä, eikä vastaavat solut. Mitä teen väärin? ChickenCount 14:17 21.7.09 Perl my @tunnukset = lue_taulukkoon("pelaajat"); @tunnukset = @oletustunnukset unless @tunnukset; || operaattori palauttaa vasemman puolen arvon skalaarina (@taulu skalaarina on taulun pituus). NationalAcrobat 06:31 22.7.09 Erittäin hienoa, kiitos - nyt toimii niinkuin pitääkin :) Eipä tullut mieleenkään, että ongelma johtuisi || operaattorista... |
![]() Haku
|