#!/usr/bin/perl use DBI; my $listname = shift; my @fieldlist = qw/S_FName S_SName S_Address S_Postcode S_State S_Country S_Email S_Company/; my $field = (); foreach $field (grep(not_NA($listname,$_), @fieldlist)){ print "".$field . ""; } sub not_NA { my $listname = shift; my $field = shift; chomp $field,$listname; my $mid = lookup_MID($listname); my $db = "nMail"; my $sock = "/tmp/mysql.sock"; my $user = "user"; my $pass = 'password'; my $dsn = "DBI:mysql:$db;mysql_socket=$sock"; my $dbh = DBI->connect($dsn,$user,$pass); my $sth = $dbh->prepare("SELECT $field from ML_Subscribers WHERE MID = $mid"); $sth->execute() || die "Error: Could not get mailing list data\n"; while (my @row = $sth->fetchrow_array) { if($row ne 'NA'){ $sth->finish(); $dbh->disconnect(); return 1; } } $dbh->disconnect(); return 0; } sub lookup_MID { my $listname = shift; chomp $listname; my $db = "nMail"; my $sock = "/tmp/mysql.sock"; my $user = "user"; my $pass = 'password'; my $dsn = "DBI:mysql:$db;mysql_socket=$sock"; my $mid = (); my $dbh = DBI->connect($dsn,$user,$pass); my $sth = $dbh->prepare("SELECT MID,Mname FROM ML_Lists"); $sth->execute() || die "Error: Could not get mailing list data\n"; while (my @row = $sth->fetchrow_array) { chomp $row[0],$row[1]; if($row[1] eq $listname){ $mid = $row[0]; } } $dbh->disconnect(); if(!$mid){ return 0; } return $mid; }