A few comments on your code; firstly, the line if (my $service eq 'mail') has me confused. You're making a new variable named $service and then immediatly checking if it's equal to 'mail'. Being a new variable, however, its value is undef still. Perhaps you got overzealous with the mys?
Lastly, we come to the lines which are actually raizing your error. $smtp_inc_src_cnt{$src} is just one element of a hash -- which, if you think about it, would be rather hard to make a new variable of (what happens if you've already defined the rest of the hash elsewhere?) Perhaps you meant:
my %smtp_inc_src_cnt = (src => 1); my %smtp_inc_dst_cnt = (dst => 1); my $smtp_inc_tot = 1;
But even that doesn't do what you want -- the hashes and scalar would be only defined within your innermost if statement. So both of them should probably be moved to outside you loop, like so:
my (%smtp_inc_src_cnt, %smtp_inc_dst_cnt,$smtp_inc_tot); if ($if_name eq $outside_if && $if_dir eq 'inbound') { if ($service eq 'mail') { $smtp_inc_src_cnt{$src}++; $smtp_inc_dst_cnt{$dst}++; $smtp_inc_tot++; } }
Update: *sigh* -- never node just after waking up. Messing up precedence is something I hardly ever do. Grump. Kudos to chipmunk for poking me.
perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^+*`^ ve^#$&V"+@( NO CARRIER'
In reply to Re: Autoincrement errors...
by Chmrr
in thread Autoincrement errors...
by k2
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |