I have some output that looks like:
afp:usersArray:_array_index:0:serviceType = "afp"
afp:usersArray:_array_index:0:ipAddress = "1.1.1.1"
afp:usersArray:_array_index:0:sessionID = 235
afp:usersArray:_array_index:0:loginElapsedTime = 2796
afp:usersArray:_array_index:0:disconnectID = 0
afp:usersArray:_array_index:0:name = "admin"
afp:usersArray:_array_index:0:flags = 1
afp:usersArray:_array_index:1:serviceType = "afp"
afp:usersArray:_array_index:1:ipAddress = "1.1.1.1"
afp:usersArray:_array_index:1:sessionID = 244
afp:usersArray:_array_index:1:loginElapsedTime = 2286
afp:usersArray:_array_index:1:disconnectID = 0
afp:usersArray:_array_index:1:name = "admin"
afp:usersArray:_array_index:1:flags = 1
afp:timeStamp = "2011-03-17 16:45:37 -0700"
####
#-Code
getList();
for (keys %uhash){
print "Final: ArrayNum:$_ and SessionName: $uhash{$_}->{sessionName} SessionId:$uhash{$_}->{sessionId}\n";
}
#-Subs
sub getList {
open FH,"output";
while (){
if ($flag{debug}){
print "DEBUG: OUTPUT: $_\n";
}
if (/.*array_index:(\d+):serviceType.*/){
$arrayNum = $1;
if ($flag{debug}){
print "DEBUG:ArrayNum: $1\n";
}
}
unless(!$arrayNum){
if (/.*array_index:$arrayNum:sessionID = (\d+)/){
$sessionId = "$1";
$uhash{$arrayNum}->{sessionId} = $sessionId;
if ($flag{debug}){
print "DEBUG:SessionId: $sessionId\n";
}
}
if (/.*array_index:$arrayNum:name = "(\w+)"/){
$sessionName = "$1";
$uhash{$arrayNum}->{sessionName} = $sessionName;
if ($flag{debug}){
print "DEBUG:SessionName: $sessionName\n";
}
}
}
}
}
####
Final: ArrayNum:1 and SessionName: admin SessionId:244