CGI/Perl Guide | Learning Center | Forums | Advertise | Login
Site Search: in

  Main Index MAIN
INDEX
Search Posts SEARCH
POSTS
Who's Online WHO'S
ONLINE
Log in LOG
IN

Home: Perl Programming Help: Regular Expressions:
output mismatch in perl script

 



perlisgreat
Novice

Jul 1, 2009, 8:07 AM

Post #1 of 1 (1684 views)
output mismatch in perl script Can't Post

Hi,

Here is my piece of code--


Code
#!/usr/bin/perl 

my $Time_Stamp ;
my $User_Name;
my $Success;
my $Failure;
my $ErrorCode;
my $ErrorMsg;
my $logDir = $ARGV[0];
my $logPrefix = $ARGV[1];

die "usage: $0 <logDir> <logPrefix>" unless $logDir and $logPrefix;
die "Log dir $logDir doesn't exist" unless -d "$logDir";
for my $logFile ( glob("$logDir/${logPrefix}*") )
{
open($log, "<", $logFile) or die "Can't open $logFile for reading.";
open(FP_OUT,">temp12") or die "cannot create file temp1 for writing";
print "Processing file $logFile...\n";


OUTER: while( $line = <$log> )
{

chomp($line);
if ($line =~ /^(.*)INFO:.*QNA Step - AUTH IN PROGRESS/)
{
$Time_Stamp = $1;
printf FP_OUT "$Time_Stamp,";
QnA_search_for_sucess_or_failure() ;
#QnA_search_for_userID() ;
next OUTER;

}

}
}




sub QnA_search_for_sucess_or_failure

{
OUTER1: while ( $line = <$log> )

{
if ($line =~ /QNA Auth.*Success\s*and\s*Complete/)

{
printf FP_OUT "Success,";
print STDOUT "In Success,\n";
$ErrorMsg="null";
while ( $line = <$log> )
{
if ($line =~ /ArAuthFrameworkImpl::doPostAuth.*Authentication\s*mechanism\s*returned\s*\[(..*)\]\s*for\s*AuthIdentity\s*\[(..*)\]/)

{
print "$2\n";
printf FP_OUT "$2, ${1}, $ErrorMsg\n";
last OUTER1;

}
}

}
if($line =~ /Message.*QNA\s*Auth\s*Failed\((..*)\).*/)
{
$ErrorMsg=$1;
printf FP_OUT "Failure,";
print STDOUT "In Failure,\n";
while ( $line = <$log> )
{
if ($line =~ /ArAuthFrameworkImpl::doPostAuth.*Authentication\s*mechanism\s*returned\s*\[(..*)\]\s*for\s*AuthIdentity\s*\[(..*)\]/)

{

print "$2\n";
printf FP_OUT "$2, ${1}, $ErrorMsg\n";
last OUTER1;
}

}


}
}

}


The below snippet is taken from the logfile.I am using while loops because there are many lines above and inbetween this snippet.

Code
Tue May 19 22:55:13.649 2009 Morocco Standard Time INFO:    pid 2172 tid 3412: 160: 10083504: QNA Step - AUTH IN PROGRESS 
Tue May 19 22:55:13.649 2009 Morocco Standard Time INFO: pid 2172 tid 3412: 160: 10083504: QNA Auth - Success and Complete, Returning SUCCESS
Tue May 19 22:55:13.665 2009 Morocco Standard Time INFO: pid 2172 tid 3412: 17: 10083504: ArAuthFrameworkImpl::doPostAuth::1:10083487:: Authentication mechanism returned [0] for AuthIdentity [12345]


and for QnA failure the line comes like this in place of success line--
Tue May 19 22:56:21.962 2009 Morocco Standard Time INFO: pid 2172 tid 688: 160: 10083554: Err[115261735], Message: QNA Auth Failed(Invalid Credentials), Repeating the challenge and Returning FAILED


when i ran the program like this--

Code
C:\Perl Script>perl  QnA_Authentication.pl . logfile.txt 
Processing file ./logfile.txt...
In Success,
01503164
In Success,
01822755
In Failure,
01401058
Processing file ./logfile.txt.bak...


but in output file that is temp12, it is not printing anything.
Kindly suggest wha is wrong here.

 
 


Search for (options) Powered by Gossamer Forum v.1.2.0

Web Applications & Managed Hosting Powered by Gossamer Threads
Visit our Mailing List Archives