Hi,
$Window or $ModalWindow and you miss a } for if ?
For error: "Not a CODE reference at ...", i don't know exacly what append.
But it's probably because you need to add { } around (sort keys %PLZ)[$_].
for(0..((keys %PLZ) - 1)){
if($Window->{(sort keys %PLZ)[$_]}->Checked == 1){
print $PLZ{(sort keys %PLZ)[$_]}." is checked\n";
}
}
I'm not sure understand your data structure.
I suppose keys in %PLZ is checkbox name and associate value is caption.
Something like that :
%PLZ = (
"ChechBox1" => "Option 1",
"ChechBox2" => "Option 2",
);
It's probably better to do something like that :
foreach (sort keys %PLZ) {
if($Window->{$_}->Checked == 1) {
print $PLZ{$_}." is checked\n";
}
}
Laurent
- Original Message -
From: "YANDEX" <[EMAIL PROTECTED]>
To:
Sent: Sunday, November 30, 2003 5:37 PM
Subject: [perl-win32-gui-users] not a CODE reference
> Hello perl-win32-gui-users,
>
> I have a small window with many checkboxes. I need to ask every
> checkbox, so I:
> for(0..((keys %PLZ) - 1)){
> if($Window->(sort keys %PLZ)[$_]->Checked == 1){
> print $PLZ{(sort keys %PLZ)[$_]}." is checked\n";
> }
>
> this dont works, the error: "Not a CODE reference at ..."
>
> perldiag say to me: "(W overload) The second (fourth, sixth, ...)
> argument of overload::constant needs to be a code reference.
> Either an anonymous subroutine, or a reference to a subroutine."
>
> so I write workaround:
>
> for(0..((keys %PLZ) - 1)){
>$Ch = (sort keys %PLZ)[$_];
>if($ModalWindow->$Ch->Checked == 1){
>print $PLZ{(sort keys %PLZ)[$_]}." is checked\n";
> }
>
> can somebody tell me how can I do this without using intermediate
> variable ($Ch) ??
> --
> Best regards,
> Pavel mailto:[EMAIL PROTECTED]
>