Gabor HALASZ <halas...@freemail.hu> írta (2012. január 31. 14:07): > Helo! > > Mivel az utolso leveledet kinyirta a freemail, nem igazan tudok ra > valaszolni, de amit kihamoztam belole, az alapjan meg mindig nem mukodik > (ha tevednek, sorry):
Jó lenne, ha tévednél, de sajnos nem tévedsz. :( > Az elso levelemben is irtam, valamint Kiss Gabor is ugyanazt irta neked, > de akkor kifejtem bovebben: azert nem mukodik, amit irtal, mert a > perlnek nincs param funckioja( man perlfunc ), csak a CGI->new altal > visszaadott objektumnak van param metodusa. Te szepen eltaroltad a > $q-ban a CGI objektumodat, aztan hivogattad sorban az objektum > metodusait, kiveve a paramnal, ahol lefelejtetted elole az objektumot es > a dereference operatort, a $q-> -t. Hiba azert nem keletkezett, mert > kihagytad a use strict-et az elejerol, a sok -t kapcsolo meg felesleges, > mert irtal use warning-ot (illetve van egy bonyolultabb magyarazatom is, > de azt most hagyjuk). > Ha azon a gepen, amin hasznalni akarod, nem telepithetsz, akkor egy > masik gepen kuld at a kododat a perltidy-n (olvashato formaba onti) es a > perlcritic-en (szol a durva programozasi hibakert). Nem vitatkozni akarok, de a tapasztalataim szerint a Perl-nek van param funkciója... csak példaképpen egy idézet a CGI doksiból: USING THE FUNCTION-ORIENTED INTERFACE ... use CGI 'param','header'; ... $zipcode = param('zipcode') ... (Egyébként több helyen is szerepel ebben a formában... az más kérdés, hogy objektum orientáltan szebb.) A "sok T" már nem tudom minek van (nyilván valami másik progit írtam át a 2. sortól kezdve...), de szerintem nem sok vizet zavar. Az use strict ott figyel a 3. sorban, eredetileg benne se volt, de beleraktam, hátha segít rájönni, hogy hol hibázok. A változóim szépen fel is töltődnek (a változók értékének kiíratásánál látom is az új értéket) a param('...') funkcióval (vagy metódussal, ha úgy jobban tetszik), csak az a nyomorék textfield nem veszi fel az új értéket. És nem értem, hogy miért...? Idemásolom a (szerintem) lényeges sorokat (ezt remélem átengedi a freemail is): ... my ($lepeskoz,$lepeskoz_tol)=($q->param('lepeskoz'),$q->param('lepeskoz_tol')); ... if ($q->param('elore')) { $lepeskoz_tol=$lepeskoz_tol+$lepeskoz } ... print ... $q->textfield(-name=>'lepeskoz_tol', -value=>$lepeskoz_tol),"-tól",br,"\n", $q->textfield(-name=>'lepeskoz', -value=>$lepeskoz), "(lepeskoz)",br,"\n", ... Köszönettel: kjt _________________________________________________ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux