Hi,
I am trying to initiate a hash once when the package is loaded (via
modperl). I don't want to make repeated DB queries for this data so
I'd like to populate the hash when my daemon starts and not again
until it's reloaded/started. I thought that I could say somethign
like, if %defaults
reloaded/started. I thought that I could say somethign
like, if %defaults, return %defaults else populate %defaults and
return.
Here's the error I am getting:
Can't modify private hash in logical or assignment (||=) at
/export/web/lib/Foo.pm line 28, near }
snip
You should have gone with your first
2009/4/20 Chas. Owens chas.ow...@gmail.com:
On Mon, Apr 20, 2009 at 11:21, Dermot paik...@googlemail.com wrote:
...
I thought that I could say somethign
like, if %defaults, return %defaults else populate %defaults and
return.
Here's the error I am getting:
Can't modify private hash
On Mon, Apr 20, 2009 at 12:26, Dermot paik...@googlemail.com wrote:
2009/4/20 Chas. Owens chas.ow...@gmail.com:
On Mon, Apr 20, 2009 at 11:21, Dermot paik...@googlemail.com wrote:
...
I thought that I could say somethign
like, if %defaults, return %defaults else populate %defaults and
return
2009/4/20 Chas. Owens chas.ow...@gmail.com:
On Mon, Apr 20, 2009 at 12:26, Dermot paik...@googlemail.com wrote:
2009/4/20 Chas. Owens chas.ow...@gmail.com:
On Mon, Apr 20, 2009 at 11:21, Dermot paik...@googlemail.com wrote:
...
snip
I would avoid the do {...} and just muck with %defaults
(Randal L. Schwartz) schreef:
And I came up with this:
$variable ||= 0; # all false values become 0
$variable = 1; # all true values become 1
How about this:
($variable ||= 0) = 1 ;
or
($variable = 1) ||= 0 ;
depending on whether you expect $variable to be false or
John == John W Krahn [EMAIL PROTECTED] writes:
John Wouldn't
John $variable = !!$variable;
John work just as well?
No. There's no promise that the output of ! is 0 and 1. In fact,
it's and 1. And that's exactly what I was trying to avoid.
Don't confuse C idioms with Perl things.
On Fri, 2006-09-06 at 06:10 -0700, Randal L. Schwartz wrote:
John == John W Krahn [EMAIL PROTECTED] writes:
John Wouldn't
John $variable = !!$variable;
John work just as well?
No. There's no promise that the output of ! is 0 and 1. In fact,
it's and 1. And that's
On Fri, 2006-09-06 at 09:54 -0400, Mr. Shawn H. Corey wrote:
How about?
$variable = 1 - !$variable;
And, of course, to calculate its inverse:
$variable = 1 - !!$variable;
--
__END__
Just my 0.0002 million dollars worth,
--- Shawn
For the things we have to learn before we can
(Randal L. Schwartz) schreef:
There's an =, and I thought I'd never use it.
However, one day, I realized that I needed to normalize the
true/false value of a variable, because I wanted to reduce all
possible true/false values to just 1/0 for easy operations in the
next step of the program.
Mr == Mr Shawn H Corey [EMAIL PROTECTED] writes:
Mr How about?
Mr $variable = 1 - !$variable;
Same problem. And you'll also get a warnings error.
There is *no promise* in the Perl docs that a boolean returns a specific value
for true or false. Any code that depends on such is broken, in
Dr == Dr Ruud rvtol writes:
Dr And q{0 but true} and q{0e0} and q{0e1} etc. become 1 as well.
Exactly what I wanted, yes.
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
merlyn@stonehenge.com URL:http://www.stonehenge.com/merlyn/
Perl/Unix/security consulting,
Intrah onat Diria .. 09 Jun 2006 08:10:11 -0700
, Randal L. Schwartz wrote Revera y:
x-mayan-date: Long count = 12.19.13.6.13; tzolkin = 9 Ben; haab = 6 Zotz
..
the following could be unreadable @ 1149876152 :::
_
, /
,
, 982
, tome
,
, i
, |
,
Bryan == Bryan R Harris [EMAIL PROTECTED] writes:
Bryan Is there an = also? How about or=?
There's an =, and I thought I'd never use it.
However, one day, I realized that I needed to normalize the true/false
value of a variable, because I wanted to reduce all possible true/false
values to
Randal L. Schwartz wrote:
Bryan == Bryan R Harris [EMAIL PROTECTED] writes:
Bryan Is there an = also? How about or=?
There's an =, and I thought I'd never use it.
However, one day, I realized that I needed to normalize the true/false
value of a variable, because I wanted to reduce all
is FALSE then assign 3 to
$pi.
That could also be written as:
unless ( $pi ) {
$pi = 3;
}
One last question on this--
Take this (lame) example of an RSVP to an invitation:
**
$_ = Bill, 3; # name, number of folks attending (optional, defaults
-Original Message-
From: Bryan R Harris [mailto:[EMAIL PROTECTED]
Sent: Wednesday, June 07, 2006 4:43 PM
To: Beginners Perl
Subject: Re: defaults
snip
Take this (lame) example of an RSVP to an invitation:
**
$_ = Bill, 3; # name, number
Can someone explain what:
$pi ||= 3;
...means? I just saw it in Programming Perl (pp 540), but it doesn't
explain it. Thx!
- B
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/ http://learn.perl.org/first-response
Bryan R Harris wrote:
Can someone explain what:
$pi ||= 3;
...means? I just saw it in Programming Perl (pp 540), but it doesn't
explain it. Thx!
|| is the logical OR operator (see perldoc perlop) which says that if $pi is
TRUE then keep the current value of $pi but if $pi is FALSE
Can someone explain what:
$pi ||= 3;
...means? I just saw it in Programming Perl (pp 540), but it doesn't
explain it. Thx!
|| is the logical OR operator (see perldoc perlop) which says that if $pi is
TRUE then keep the current value of $pi but if $pi is FALSE then assign 3 to
$pi.
Bryan R Harris wrote:
: Is there an = also? How about or=?
All perl operators are listed in the 'perlop' file.
HTH,
Charles K. Clarkson
--
Mobile Homes Specialist
Free Market Advocate
Web Programmer
254 968-8328
Don't tread on my bandwidth. Trim your posts.
--
To unsubscribe,
Bryan R Harris wrote:
Can someone explain what:
$pi ||= 3;
...means? I just saw it in Programming Perl (pp 540), but it doesn't
explain it. Thx!
|| is the logical OR operator (see perldoc perlop) which says that if $pi is
TRUE then keep the current value of $pi but if $pi is FALSE then
22 matches
Mail list logo