#!/usr/bin/perl use Data::Dumper; open (Q,"-|" , "cat mailqout" ); my $ref_tomailq= []; my $coutner = 0; my $temp_qid; while() { # Ignore the banners and totals next if m{ ^ ( -----Q-ID----- | \s* / \S+ / | \s+ Total \s requests: | \ S+ \s+ Queue \s+ status ) }ix; # Ignore any completed jobs next if m{ ^ .{10,20} \s \(job \s completed\) }x; if( m{ ^\w+ }ix ) { my @ar_line = split(/\s+/,$_); my $num_char = length($ar_line[0]); if ( $num_char > "0") { print "$ar_line[$counter] $ar_line[-1]"; $ref_tomailq->[$counter]->{$ar_line[0]}->{"from"} = $ar_line[-1]; $temp_qid = $ar_line[0]; $counter++; } } else { my @ar_line = split(/\s+/, $_); if ($ar_line[1] =~ /Deffered:/) { next; } elsif ($ar_line[1] =~ /<{1}\w+>?/) { #my @ar_email = split(/\s+/, $_); chomp(@ar_line); print "@ar_line\n"; $ref_tomailq->[$counter-1]->{$temp_qid}->{"to"} = $ar_line[1] } } } print Dumper($ref_tomailq);