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>


Reply via email to