Paul Archer wrote: > 12:15pm, Greg Schiedler wrote: > >> OK I'm trying to modify the code below to recognize an additional >> next if statement. I have included a snip of the file that the code >> uses an input. >> >> Greg >> >> next if /Acct-Session-Id = "00000000"/; This statment works! >> > > A 'next if /...../' is a short form for: > > if ($_ =~ m/..../) { > next; > } > > So... whatever is in between the forward slashes is the pattern you > are looking for within the string contained in your default variable > ($_). > > > A single equals sign is *assignment*, where a double equal sign is a > test of numeric equality (and 'eq' is a test to see if two strings > are equal). >
Note, you're not using the equals as an assignment here. You're matching on the literal "=" in the string. > HTH, > > Paul > >> # I added this statement. I don't understand the /'s in the >> statement. And my guess is that I need to modify the statement to >> properly work with an IP over a number or string. >> >> next if /NAS-IP-Address = "192.168.0.1"/; This statement does not >> work. >> In your log, the line to be matched is: NAS-IP-Address = 192.168.0.1 No quotes. It should match if you pull the quotes out of your "regex" statement, though I'd also suggest adding a \ before the .'s to ensure you match a period and not a "wild" character... >> next if /User-Name = "$userskp"/; This statement works! >> >> Can anyone tell me why my simple addition will not work as I think >> it should. >> >> Greg :-) >> >> >> <Code Snipit> >> ... >> ... >> require 'usrmon.cf'; >> >> if (-M "$file" < .04) { >> >> $date= (localtime)[3]; >> >> dbmopen(%hash, "$dbfile", 0600); >> >> open (FILE, "$file") || die; >> open (FILEBK, ">>$filebk") || die; >> while (<FILE>) { >> $/ = ''; >> next if /Acct-Session-Id = "00000000"/; >> next if /NAS-IP-Address = "192.168.0.1"/; >> next if /User-Name = "$userskp"/; >> print FILEBK; >> >> if (/Acct-Status-Type = Stop/ || /Acct-Status-Type = Start/) { >> if (/User-Name = "([^"]+)"/){ >> $key= $1; >> } >> if (/Acct-Status-Type = Stop/) { >> if (/Acct-Session-Time = (\d+)/) { >> $used{$key}+= $1; >> $uses{$key}++; >> } >> } >> } >> } >> close(FILE); >> open (FILE, ">$file"); >> print FILE "\n"; >> >> >> >> <RADIUS Log Snip> >> ... >> ... Ascend-PreSession-Time = 27 >> CVX-Modem-Begin-Modulation = "V.90" >> CVX-Modem-Error-Correction = "V.42" >> CVX-Modem-Data-Compression = "V.42bis" >> Timestamp = 1075939364 >> Timestamp = 1075939362 >> >> Wed Feb 4 16:03:11 2004 >> Acct-Status-Type = Start >> User-Name = "[EMAIL PROTECTED]" >> Acct-Session-Id = "0000062A" >> Framed-IP-Address = 10.0.0.2 >> NAS-IP-Address = 192.168.0.1 >> Timestamp = 1075939456 >> Acct-Delay-Time = 0 >> Timestamp = 1075939391 >> >> Wed Feb 4 16:04:00 2004 >> Acct-Status-Type = Stop >> User-Name = "[EMAIL PROTECTED]" >> Acct-Session-Id = "0000062A" >> Acct-Session-Time = 49 >> Framed-IP-Address = 10.0.0.2 >> NAS-IP-Address = 192.168.0.1 >> Timestamp = 1075939505 >> Acct-Delay-Time = 0 >> Timestamp = 1075939440 >> >> Wed Feb 4 16:04:21 2004 >> Acct-Status-Type = Start >> NAS-Identifier = "cvx00.domain.com" >> ... >> ... >> <End RADIUS Log Snipit> >> >> -- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> <http://learn.perl.org/> <http://learn.perl.org/first-response> >> >> > > ------------------------------------------------- > "Welcome to downtown Coolsville--population: us." > ------------------------------------------------- > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > <http://learn.perl.org/> <http://learn.perl.org/first-response> -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>