> From: "Dan Muey" <[EMAIL PROTECTED]>
> > > Not sure this is what you are after but ...
> > >
> > > *x = \15;
> > > print "\$x=$x\n";
> > > $x = 16; # => Modification of a read-only value attempted at ...
> > > print "\$x=$x\n";
> > >
> > > Jenda
> >
> > You're a genius!
>
> No I'm not. I saw this somewhere in the docs.
>
> > I'd love to understand further:
> > - why using a glob like that makes it readonly
> > - why you have to \15 instead 15 to assign it a value(is
> it to show
> > it's a scalar?) - does this work with arrays/hashes/etc of
> *x? - how
> > do assign something besides a nuber to $x? ( *x =
> \grabdata(); or *x
> > = \"hi there";) - how do I assign somthign to @x or %x etc...
>
> 1)
> *y = \$x;
> changes $y into an alias to $x. From now it doesn't matter whether
> you assign or read $y or $x, they'll both contain the same value.
>
> 2)
> \15
> creates a scalar reference to a constant. See:
> print '\15 = ', \15, "\n";
>
> 3)
> This means that
> *x = \15;
> changes $x into an alias of 15.
> And just like you can't write
> 15 = 16;
> you can't from now on write
> $x = 16;
>
> Now this only works for constants. The only way to set a readonly
> variable based on the return of some function would be using eval"":
>
> { my $value = grabdata(parameters);
> $value =~ s/([\\'])/\\$1/g;
> eval "\*const = '$value'";
> }
>
> And it's not possible to make a constant array or hash this
> way. AFAIK.
>
Ahhhhhhh I see, interesting, good to know! Thanks
By the way have I told you that your Mail::Sender module rocks! (Sorry I felt a burst
of joy ;p)
> Jenda
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]