in reply to Autoincrement errors...
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'
|
---|