At 09:39 PM 5/2/00 +0700, you wrote:
>---
>ada data yang tidak diisi dan mungkin juga dobel. Kuncinya field nick,
diikuti dengan alamat, hobi , status 

Halo bung meri,
Saya punya solusi, tapi dengan cara lain, begini

misal data field text anda ->   NICK, ALAMAT, HOBI, STATUS

Berikut ini contoh isi data anda data.txt

Dodik|Kebon Sirih|Internet|Idle|
Budi||pindah-pindah kos|Idle|
Andi|Tebet||Kawin

Jadi solusinya :

Program TAMBAH.CGI (metode post)
----------------------------------------------

#!/usr/local/bin/perl

print "Content-type:text/html\n\n";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
# Ambil nilai dari submit form dg metode post

@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}

# statement foreach diatas akan mengurai array @pairs ke dalam variabel
hash %FORM 
# dan hasilnya akan sebagai berikut:
# $FORM{nick}="dodik"
# $FORM{alamat}="kebon sirih"
# $FORM{hobi}="internetan"
# $FORM{status}= "idle"

print "<html><head><title>Proses tambah data</title></head><body>"; 

open(OUTF,">>"/data1/hypermart.net/juniar79/language/perl/data.txt") or
&dienice("Tidak bisa open data.txt");
# Membuka file data.txt untuk tambah data

foreach $key (keys(%FORM)) {
print "$key = $FORM{$key}<br>";
print OUTF "$FORM{$key}|";
}

print OUTF "\n";
close(OUTF);

# Dodik|Kebon Sirih|Internet|Idle|
# perintah \n akan membuat posisi kursor pindah ke bawah dan ke pojok kiri
# (Line Feed dan Cariage Return)

print "</body></html>\n";

sub dienice {
($msg) = @_;
print "<h2>Error</h2>\n";
print $msg;
exit;
}

----------------------------------
TAMPIL.CGI (Tampil data berbentuk Tabel memecah separator | )
----------------------------------

#!/usr/local/bin/perl
print "Content-type:text/html\n\n";

print "<html><head><title>tampil data</title></head><body>\n";

open(INF,"/data1/hypermart.net/juniar79/languange/perl/data.txt") or
&dienice("Tidak bisa open data.txt");

# Membuka file data.txt untuk tambah data
@mydata = <INF>;

# variabel array ini menyimpan semua data yang ada difile data.txt
# satu baris dianggap satu variabel scalar
# Jadi, jika data sebanyak 4 baris maka variabel array menyimpan 4 variabel
scalar  

close(INF);

print <<mulaiHTML
<body>
<h2>Tampil dalam bentuk tabel</h2>
<table border=1>
<tr><td>nama</td><td>email</td><td>order</td><td>telepon</td></tr>
MulaiHTML
;

# memecah pembatas | menjadi beberapa field

foreach $i (@mydata) {       
       chomp($i);
       ($nick,$alamat,$hobi,$status) = split(/\|/,$i);
       print
"<tr><td>$nick</td><td>$alamat</td><td>$hobi</td><td>$status</td></tr>\n";   
}

print "</table></body></html>\n";

sub dienice {
   ($msg) = @_;
   print "<h2>Error</h2>\n";
   print $msg;
   exit;
}


referensi : 
http://juniar79.hypermart.net/language/perl/Perl_text_database.htm
 



--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]

Kirim email ke