in reply to showing the error ,Can't modify concatenation (.) or string in scalar assignment
G'day gayu_justin,
Firstly, this code is highly confusing and a potential source of errors:
my $check_ = "chck"; my $chck_ = "check";
Regarding the code generating the error, instead of:
foreach $usr( @ #print $usr . "\n"; #print $check_.$usr; my $check_.$usr = $cgi->param("$chck_.$usr"); print $chck_.$usr; }
I suspect you want something closer to this (untested):
for my $user_id (@userchecklist_id) { my $checkbox_name = "check_$user_id"; my $checkbox_value = $cgi->param($checkbox_name); print "Checkbox name: $checkbox_name\n"; print "Checkbox value: $checkbox_value\n"; }
By using meaningful variable names and taking a little care when laying out your code, you'll improve readability and maintainability. Take a look at perlstyle for some tips on the latter.
As a final point, note how you've reused $usr:
my $usr = $user->id; ... foreach $usr( @userchecklist_id) {
This, again, is a potential source of errors. Consider what might happen if you wanted to use the $user->id version of $usr after the loop. By using my when you start the loop (as I did) you get a different variable (scoped to the loop) and avoid possible future problems. [In case you didn't know, for and foreach are synonymous so you can save yourself some typing (see perlsyn - Foreach Loops).]
-- Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: showing the error ,Can't modify concatenation (.) or string in scalar assignment
by AnomalousMonk (Archbishop) on Jul 18, 2013 at 10:43 UTC | |
by kcott (Archbishop) on Jul 18, 2013 at 11:03 UTC |