ruseni lexikalnich promennych, readonly parametry
Pavel Smerk
xsmerk na informatics.muni.cz
Pondělí Březen 31 20:56:54 MEST 2003
On Mon, Mar 31, 2003 at 08:33:57PM +0200, Honza Pazdziora wrote:
> On Mon, Mar 31, 2003 at 08:18:20PM +0200, Pavel Smerk wrote:
> >
> > - lze nejak zrusit promennou definovanou pomoci my? Aby po takovem zruseni
> > prekladac neprekousl jeji vyskyt, byt by to bylo i ve stejnem scope, jako
> > byla zavedena.
>
> Domnivam se, ze uzivatelsky. Lexialni promenna trva z definice do konce
> scope.
Jak "uzivatelsky"? Ja si to predstavuji tak, ze to 'my' rika m.j. use strict
"tyhle promenne jsou OK, ostatni pouzite hlas". A chtel bych umet tomuhle
use strict nejak rict "tahle promenna uz neni OK, hlas mi ji taky, pokud ji
nahodou pouziju" --- pokud budu mit nejaky dlouhy scope a pro nejaky kousek
budu chtit pomocnou promennou, muze jeji vyskyt ve zbytku oznacovat chybu ->
prijde mi, ze i od toho to use strict je.
> > - lze nejak hezky oznacit promennou predavanou jako parametr za read-only?
> > Konkretne mi jde o nejakou elegantni nahradu select($rin . '', ...), kde to
> > zretezeni muze byt ponekud matouci.
>
> Jakoze to ma byt konstantni jenom v tom danem kontextu?
Ano, konkretne chci: until (select $rin, undef, undef, $timeout) { ... }
coz mi ovsem prepisuje $rin. Ale ja se ptam jen na jeden filehandle, takze
mi nemusi explicitne rikat "tenhle to je/zadny to neni", abych ja pak musel
znovu naplnovat $rin. Tak jsem tam vrazil $rin . '' a on to sezral, takze mu
zrejme nevadi, ze to neni l-hodnota, i kdyz se ji normalne snazi prepsat. No
a v takovem pripade me zajima, jestli jde nejak o promenne rict "tohle neni
l-hodnota, nech ji na pokoji".
Diky P.
Další informace o konferenci Perl