Well I tested it out on one of our Unix machines and I do not get any errors. The output I get (from the provided code) is: $ ./test.pl DATE: NAS-IP-Address :
So which line is 54? You did not provide all the lines of your code so I can't see the line where you are getting the error. You really should try to use warnings and use strict. Also, are you wanting to extract and remove the date from $log_entry or replace it? John Pitchko Data Services Saskatchewan Government Insurance >>> Hernan <[EMAIL PROTECTED]> 08/15/02 07:08am >>> hello people i am trying to parse a radius log with a regexp provided by rob,the regexp used to work with a cisco cdr log and i am trying to adapt it to parse a radius log. I am trying to get the NAS-IP-Address parameter but i get the following output: perl optrad.pl Argument "IP" isn't numeric in subtraction (-) at optrad.pl line 54. Argument "NAS" isn't numeric in subtraction (-) at optrad.pl line 54. Argument "Address" isn't numeric in subtraction (-) at optrad.pl line 54. Use of uninitialized value in concatenation (.) at optrad.pl line 54. NAS-IP-Address : I tried to scape the "-" but it did'nt work This is the script: #!/usr/bin/perl my $log_entry = q[Sat Jul 27 07:07:00 2002 NAS-IP-Address =10.0.0.2 NAS-Port-Type = Async User-Name = "5555555" Called-Station-Id = "222222228" Calling-Station-Id = "3333333333" Acct-Status-Type = Stop Service-Type = Login-User h323-gw-id = "h323-gw-id=bue-pstngw-div1." Cisco-AVPair = "h323-incoming-conf-id=53E0B5CC A08011D6 8D649004 9931091" h323-call-origin = "h323-call-origin=answer" h323-call-type = "h323-call-type=VoIP" h323-setup-time = "h323-setup-time=*07:14:18.107 GMT Sat Jul 27 2002" h323-connect-time = "h323-connect-time=*07:14:39.524 GMT Sat Jul 27 2002" h323-disconnect-time = "h323-disconnect-time=*07:15:02.198 GMT Sat Jul 27 2002" h323-disconnect-cause = "h323-disconnect-cause=10" h323-remote-address = "h323-remote-address=10.0.0.1" h323-voice-quality = "h323-voice-quality=10" h323-conf-id = "h323-conf-id=53E0B5CC A08011D6 8D649004 9931091" Acct-Session-Id = "0000053D" Acct-Input-Octets = 17895 Acct-Output-Octets = 7825 Acct-Input-Packets = 453 Acct-Output-Packets = 397 Acct-Session-Time = 23 Acct-Delay-Time = 0 Client-IP-Address = 10.0.0.1 ]; # a single log entry my %data = (); # grab the date from the first section, # and remove the first section all-together $log_entry =~ s/^(.*?:.*?:\d+).*?:.*?:.*?:/Date $1,/; # split the line my the commas for (split /\s*,\s*/, $log_entry) { # grab the name/value pairs and save to a hash /^(\w+)\s*(.*)/ and $data{$1} = $2 and next; } # grab what you need from the hash print "DATE: $data{Date}\n"; print "NAS-IP-Address : $data{NAS-IP-Address }\n"; # etc... Any ideas on how to adecuate the regexp? Thanks in advance,sorry for the long mail Hernan -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]