Bagian: 1—Pengenalan Perl dan CGI
Tingkat: Dasar
Tujuan: Setelah membaca tutorial ini, pembaca diharapkan mengetahui
secara garis besar tentang elemen-elemen dasar Perl dan dapat membuat program
CGI sederhana.
Abstrak: Apa itu Perl, bagaimana cara
menjalankan skrip Perl, elemen-elemen dasar bahasa Perl (variabel, fungsi,
operator, definisi, pernyataan, ekspresi dan kontrol), CGI, menulis program CGI
sederhana.
Prasyarat: mampu memahami logika dan algoritma, tidak wajib punya
pengalaman dengan bahasa lain, tapi akan sangat
membantu bila pembaca mengenal C dan shell. Mengerti HTML.
print <<TUTORIAL; Selamat datang di dunia Perl. Ini adalah seri pertama dari rangkaian tutorial Perl. Rangkaian tutorial ini akan mengenalkan Perl secara umum, dan khususnya, mengenalkan penggunaan Perl dalam pemrograman Web. TUTORIAL
Saya menyusun
tutorial ini dan mencoba kode program dengan menggunakan Perl versi 5.6 di
sistem Linux (sebuah varian Unix). Beberapa perintah
dan ketentuan mungkin tidak relevan bagi sistem lain,
namun beberapa di antaranya mudah dicari padanan yang sesuai. Perl sendiri
tersedia untuk berbagai sistem operasi, jadi tutorial ini bukan hanya untuk
sistem Linux. Perbedaan yang signifikan akan saya
sebutkan secara eksplisit dan disertai alternatif untuk sistem lain, atau
paling tidak, petunjuk untuk informasi lebih lanjut.
Semua
kode dan materi masih relevan dengan versi Perl yang sudah lama. Tapi,
saya tidak menjamin kondisinya tetap sama untuk versi
yang lebih tua dari 5.004 (dirilis Mei 1997). Untuk
menjalankan program yang dijalankan melalui Web (kita kenal dengan program CGI), saya
menggunakan webserver Apache 1.3.19. Saya
mengasumsikan bahwa Anda sudah mengerti bagaimana melakukan konfigurasi di
Apache, atau webserver apapun. Anda bisa memperoleh
informasi mengenai penggunaan Perl dan webserver untuk berbagai sistem di situs
Perl, www.perl.com. Di sana Anda juga bisa mencari informasi tentang
instalasi Perl untuk semua sistem.
Kadang-kadang saya akan menunjukkan beberapa perintah yang harus dilakukan dari
shell atau command line. Di Linux, umumnya
digunakan program /bin/bash, dan di Windows, yang digunakan
adalah COMMAND.COM atau CMD.EXE
melalui prompt
DOS. Untuk melambangkan shell ketika menjalankan perintah, saya
menggunakan “$ ” sebagai tanda prompt.
Masukan yang harus Anda ketikkan akan dicetak dalam
huruf tebal miring. Misalnya,
$ perl
Hal lain yang saya asumsikan adalah Anda mengerti HTML (HyperText Markup Language) dan bisa
membuat dokumen HTML. Dengan sendirinya saya juga merasa
tidak perlu menjelaskan lagi mengenai HTTP
(HyperText
Transfer Protocol) dan URL/URI (Universal Resource Locator/Universal Resource Identifier).
Terakhir,
yang harus Anda siapkan sebelum kita benar-benar mulai tutorial ini, adalah
santai. Jangan terburu-buru. Kalau
ada bagian yang kurang jelas, baca sekali lagi. Kalau
perlu, selingi dengan jalan-jalan, tidak perlu sampai ke mal. Dan sebaiknya Anda sedang tidak jauh-jauh dari komputer, banyak
yang harus dipraktikkan di sini. Perl dibuat untuk mempermudah
pekerjaan, kenapa mempelajarinya dengan jalan yang susah?
Perl Selayang Pandang
Perl merupakan bahasa pemrograman dengan kemampuan utama untuk
melakukan berbagai jenis pemrosesan teks. Dengan dasar kemampuan
tersebut, Perl makin berkembang untuk dapat melakukan berbagai macam proses
menyangkut manipulasi data teks dan biner sejak dibuat pertama kali oleh Larry
Wall pada tahun 1987. Proses yang bisa dilakukan beragam, dari file
teks biasa sampai DBM. Dari pengelolaan data
di RDBMS sampai pemrosesan informasi yang disebar melalui
jaringan. Dari manipulasi grafis, audio (MP3) dan video sampai pembuatan
panel kontrol untuk home automation. Dan konon katanya, Perl
itu singkatan dari “Practical Extraction and Reporting Language”. Tapi, jangan pernah menyebutnya “PERL”. Pembuatnya
ingin bahasa ini dipanggil Perl.
Motto Perl adalah TMTOWTDI
(there's more
than one way to do it). Apapun yang Anda lakukan dengan Perl,
tersedia lebih dari satu cara. Pertimbangan
yang dimiliki seorang programer biasanya meliputi penulisan kode, efisiensi,
kecepatan, dan kejelasan. Untuk menjalankan Perl sendiri tersedia
beberapa cara. Namun untuk kepentingan tutorial ini,
mungkin hanya satu atau dua cara saja yang saya
tunjukkan. “Banyak cara” tidak selalu berarti “semua
cocok” untuk “semua kondisi”.
Menjalankan Program Perl
Sebagai bahasa skrip, kode program Perl tidak perlu dikompilasi. Untuk menjalankan sebuah skrip Perl diperlukan program interpreter
yang disebut perl (dengan p kecil). Program
ini menerima opsi-opsi berupa tanda minus dan satu karakter tambahan, misalnya -w. Jadi, kita menyebutnya skrip atau program? Dalam konteks Perl, itu tidak
penting. Sepanjang tutorial, saya akan
menggunakan kedua terminologi tersebut.
Kita bisa
mendefinisikan kode program Perl di shell dan menjalankannya pada saat itu juga. Untuk itu
opsi -e digunakan. Program semacam ini disebut one-liner. Program di bawah ini akan mengubah nama file di sebuah direktori menjadi huruf
kecil semua.
$ perl -e 'rename $_, lc foreach @ARGV' *
(Di
Windows, gunakan *.* sebagai
pengganti *, dan gunakan kutip
ganda untuk menggantikan kutip tunggal).
Cara yang lebih
umum tentu saja adalah dengan menuliskan kode program di dalam sebuah file lalu
memanggil perl untuk menjalankan program tersebut. Gampang
sekali. Ambil contoh kode pengantar tutorial.
Misalkan kode itu saya masukkan ke dalam file bernama tutorial.pl,
maka saya sudah punya sebuah file program Perl. Lalu,
$ perl tutorial.pl Selamat datang di dunia Perl. Ini adalah seri pertama dari rangkaian tutorial Perl. Rangkaian tutorial ini akan mengenalkan Perl secara umum, dan khususnya, mengenalkan penggunaan Perl dalam pemrograman Web.
Jika
Anda menggunakan Linux, Anda bisa menggunakan shebang untuk
mendefinisikan lokasi perl. Lokasi yang umum digunakan
adalah /usr/bin/perl atau /usr/local/bin/perl. Shebang
harus diletakkan sebagai baris pertama, dan bisa juga digunakan untuk mengirim
opsi ke perl. Setelah menambahkan shebang, skrip tutorial.pl
akan menjadi,
#!/usr/bin/perl –w print <<TUTORIAL; Selamat datang di dunia Perl. Ini adalah seri pertama dari rangkaian tutorial Perl. Rangkaian tutorial ini akan mengenalkan Perl secara umum, dan khususnya, mengenalkan penggunaan Perl dalam pemrograman Web. TUTORIAL
Untuk menjadikannya
sebuah file program, tinggal mengubah permisi file supaya bisa dieksekusi. Kini
program tersebut bisa dijalankan dengan,
$ ./tutorial.pl
Keluarannya tetap sama—itu yang diharapkan bukan?
Di Windows, shebang diabaikan namun tidak bermasalah. Lihat manual perlrun
untuk alternatif shebang di
berbagai sistem.
Penggunaan Variabel
Perl memiliki
tiga tipe data: skalar,
array,
dan hash.
Skalar
menyimpan nilai tunggal, array menyimpan kumpulan skalar dengan urutan tertentu,
sedangkan hash
menyimpan kumpulan skalar
berpasangan. Sebuah variabel dinyatakan dengan tanda awalan tertentu
yang merujuk pada tipe data yang dikandungnya, serta nama
yang berfungsi sebagai pengenal. Tanda pengenal adalah $ untuk skalar, @ untuk array, dan %
untuk hash.
Nama
variabel terdiri atas huruf dan angka, disebut juga alfanumerik (karakter “_” dihitung sebagai huruf). Nama variabel tidak boleh dimulai dengan angka. Tidak ada
ketentuan mengikat mengenai berapa panjang nama
variabel yang boleh digunakan. Anda bahkan bisa menggunakan semua nama yang Anda ingat dalam silsilah keluarga Anda, selama
memenuhi ketentuan di atas.
Skalar. Variabel skalar menyimpan unit data yang paling
mendasar. Apa yang dikandung skalar, itu
jugalah yang bisa dikandung oleh array dan hash. Sebuah skalar hanya mengandung string
atau angka. Ini juga berarti bahwa semua informasi—dari manapun asalnya—akan diperlakukan sebagai string atau angka. String dikutip menggunakan kutip ganda atau kutip tunggal. Angka bisa berupa bilangan bulat, oktal, heksadesimal, maupun
pecahan desimal.
$nama = 'hasan'; $_nama2 = $nama . 't'; # hasant $tahun = 2001; $satu_dollar = 8500.43; $dua_tahun_lalu = $tahun - 2; # 1999
Untuk
memasukkan kutip tunggal dalam string yang dikutip tunggal digunakan \ (garis
miring terbalik) di depannya. Begitupun untuk
memasukkan kutip ganda dalam string yang dikutip ganda. Dan untuk memasukkan \
itu sendiri, tambahkan \ satu
lagi. Ini disebut meng-escape character.
$putih = '#FFFFFF'; $body = "<body bgcolor=\"$putih\">"; $dialog = '"Dia t\'lah pergi," katanya';
Array. Array
didefinisikan dengan memasukkan elemen-elemennya ke dalam tanda kurung dan
dipisahkan dengan ,
(koma). Koma tidak wajib diletakkan pada elemen terakhir.
Di Perl, ini sebenarnya sebuah konstruksi data yang disebut list.
@minuman = ('kopi', 'teh', 'air');
Kadang-kadang kedua
istilah ini, array
dan list,
bisa dipertukarkan, dan memiliki makna yang sama. Namun, harus disadari bahwa keduanya tetap berbeda secara logik.
Array
adalah jenis variabel, sementara list adalah konstruksi data. Dalam
pengertian singkat, bisa dikatakan bahwa array adalah list yang
bernama. Semua array berisi list, tapi
tidak semua list
berupa array.
Dengan pengertian ini kita bisa mendefinisikan sekumpulan
variabel skalar
dalam list.
($satu, $dua, $tiga) = (1, 2, 3);
Elemen array diakses
dengan sintaks $array[0], angka
di dalam “[]” menujukkan indeks elemen dimulai dari 0,
yang berarti elemen pertama. Indeks negatif (dimulai dari -1) menghitung elemen dari belakang.
$minuman[0] # berisi "kopi" $minuman[2] # berisi "air" $minuman[-1] # sama, berisi air
Jika
kebetulan semua elemen array tidak ada yang mengandung spasi, maka kita bisa
mendefinisikan sebuah array tanpa menggunakan tanda kutip dan koma.
Sebagai gantinya kita menggunakan operator qw().
@minuman = qw(kopi teh air);
Hash. Definisi hash mirip
dengan array.
Setiap elemen hash
terdiri atas pasangan indeks (key) dan nilai (value). Berbeda dengan array, indeks
di hash
menggunakan string, dan nilainya bisa diakses dengan sintaks $hash{'indeks'}.
%aplikasi = ( 'bahasa', 'perl', 'server', 'apache', 'teks', 'vim', ); print $aplikasi{'bahasa'}; # perl
Indeks
yang mengandung karakter sederhana tidak perlu dikutip karena otomatis dianggap
sebagai string. Namun jika indeks mengandung karakter
selain huruf dan angka, kutip harus digunakan. Hal ini
juga berlaku ketika mengakses elemen. Jadi, $aplikasi{'bahasa'} bisa ditulis sebagai $aplikasi{bahasa}.
Benar
dan Salah. Kadang-kadang
Anda tidak ingin mengetahui nilai kembalian dari sebuah ekspresi, baik string
maupun angka, Anda hanya ingin tahu benar atau salah. Perl tidak punya
jenis data boolean khusus. Nilai sebuah ekspresi adalah
salah satu dari: tak terdefinisi (undefined), benar (true), atau,
salah (false).
Untuk memudahkan urusan, selanjutnya saya akan
menyebut “tak terdefinisi” dengan “undef”. Aturan Perl
sederhana, semua nilai benar, kecuali yang undef, string kosong ("" atau ''), angka 0, dan string "0".
Fungsi dan Operator
Biasanya tidak
begitu penting untuk membedakan fungsi dan operator yang bernama, jadi
penggunaan istilah-istilah ini akan dilakukan
bergantian. Fungsi pada umumnya menggunakan “()” untuk meletakkan parameter. Tapi, Perl tidak mewajibkan kita untuk menggunakan tanda
kurung, tapi Perl juga tidak melarang.
Kebanyakan programer
Perl lebih suka meninggalkan tanda kurung, kecuali memang diperlukan untuk
mencegah Perl salah menafsirkan apa yang kita
inginkan. Dalam kondisi tanpa tanda kurung, perl melakukan yang terbaik untuk
menjalankan apa yang (dia pikir) kita maksudkan. Misalnya
kode,
%hash = (satu => 1, dua => 2, tiga => 3); print reverse sort keys %hash;
akan
mencetak indeks dari %hash dalam urutan terbalik, tigasatudua.
Namun, tidak ada yang menghalangi Anda untuk menulis kode dalam bentuk,
print(reverse(sort(keys(%hash))));
Perl
mendukung semua operasi aritmetika. Operator untuk mendefinisikan
variabel, =, sudah banyak contoh di atas. Perl
menyediakan operasi perbandingan untuk string dan operator dalam set yang
berbeda. Tabel 1 memberikan sebagian dari operator tersebut.
Daftar lengkap, dan juga operator lain, bisa dilihat di
manual perlop. Kita akan membahas
mereka jika sampai waktunya.
Tips: Jangan pernah membandingkan string
dengan menggunakan operator untuk angka, Anda akan
mendapatkan hasil yang tidak diinginkan.
Definisi, Pernyataan, Ekspresi, dan Kontrol
Sebuah program
Perl berisi sekumpulan definisi, pernyataan, dan ekspresi yang ditulis dengan
aturan tertentu. Tidak ada aturan baku dalam penulisan sintaks. Anda
bisa menulis keseluruhan program dalam satu baris, atau mengaturnya sedemikian
rupa sehingga membentuk gambar tertentu. Atau, kalau Anda seperti
“orang-orang normal” lainnya, Anda mungkin akan
menuliskan kode program Anda baris demi baris, beberapa di antaranya diberi
takik untuk menunjukkan level. Apapun yang Anda pilih, yang tidak boleh
dilupakan adalah, Anda harus selalu menggunakan ; untuk menutup sebuah pernyataan.
Anda boleh tidak menyertakan ; untuk
pernyataan terakhir di sebuah blok.
Blok sendiri adalah
sebuah daerah yang dibuka dengan { dan ditutup
dengan } berisi satu atau lebih pernyataan. Blok
biasanya digunakan di beberapa konstruksi kontrol atau iterasi, tapi blok juga bisa berdiri sendiri. Anda
bahkan bisa menamainya.
Pernyataan
Bersyarat. Konstruksi pernyataan bersyarat menggunakan if.
Untuk mengeksekusi pernyataan lain yang berbeda dari kondisi, digunakan else.
Rantai pengujian kondisi bisa dilakukan dengan menambahkan elsif
di antara if dan else. Misalnya,
# asumsi: rutin ambil_data_warga() sudah didefinisikan ($nama, $umur) = ambil_data_warga(); if ($umur < 5) { print "Balita"; } elsif ($umur < 22) { print "Anak sekolah"; } else { print "Saatnya bekerja"; }
Untuk
pernyataan sederhana Anda bisa membalik posisi kondisi dan pernyataan tanpa
menggunakan {}. Dari
contoh data di atas, umumnya lebih disukai menuliskan,
kirim_ke_posyandu($nama) if $umur < 5;
dari
pada,
if ($umur < 5) { kirim_ke_posyandu($nama) }
Versi negasi dari if
adalah unless. Anda bisa juga tetap menggunakan if,
dan negasi dilakukan pada kondisi dengan operator ! atau not.
silahkan_jalan() unless !$izin;
Iterasi.
Konstruksi iterasi yang paling sering digunakan adalah while,
foreach, dan for. Pernyataan dalam blok
while akan terus dieksekusi selama ekspresinya bernilai
benar. Pernahkah Anda melihat program yang memantau perkembangan
anak sejak lahir?
while ($umur < 5) { print "Masih balita\n"; kirim_ke_posyandu($nama); } print "Baiklah, sudah besar sekarang\n";
foreach mengiterasi sebuah list (atau
ekspresi apapun yang mengembalikan list, termasuk array) dan
menyimpan elemen list
pada sebuah variabel skalar pada setiap putaran. Pernyataan dalam blok kemudian bebas melakukan apa saja dengan variabel
tersebut.
foreach $nama (@daftar_murid) { # lakukan sesuatu dengan $nama }
Jika variabel skalar ($nama kalau dari contoh di atas) tidak
disebutkan, maka elemen list akan otomatis di simpan di variabel khusus $_.
foreach (ambil_daftar_lagu()) { if ($_ eq "Bengawan Solo") { print "Aha, lagu favorit!\n"; } else { print "Biasa saja.\n"; } }
Konstruksi
for punya dua bentuk. Yang pertama merupakan versi singkat dari foreach—sebenarnya, menurut manual foreach adalah sinonim (dan versi singkat)
dari for. Bentuk yang
kedua sama dengan yang ada di C. Program di bawah ini akan mencetak angka 0
sampai 9 pada setiap baris—karena adanya karakter
baris baru, \n—lalu mencetak “Selesai!”. Anda melihat penggunaan operator
penambahan, ++, yang otomatis
membuat nilai $i bertambah 1.
Operator ini bisa diletakkan sebelum maupun sesudah variabel.
for ($i = 0; $i < 10; $i++) { print "$i\n"; } print "Selesai!\n";
Anda
tidak perlu menunggu sampai iterasi selesai. Untuk semua konstruksi
operasi, Anda bisa loncat ke iterasi berikutnya dengan menggunakan next,
langsung keluar dari iterasi dengan last, dan dengan redo,
Anda bisa mengulang keseluruhan proses dari awal blok
tanpa memeriksa kondisi. Seperti juga if, Anda bisa menempatkan pernyataan
sebelum while, for, maupun foreach.
# sama dengan for di atas tapi hanya angka yang dicetak print "$i\n" while $i++ < 10; # @INC adalah variabel khusus yang menyimpan daftar direktori standar # tempat menyimpan modul-modul Perl print for @INC;
Membuat Program CGI
Setelah
menghabiskan lebih dari setengah bagian tutorial untuk hal-hal dasar, sekarang
saatnya kita masuk ke hal yang sebenarnya, membuat program CGI. Tapi, apa itu CGI? Apa hubungannya dengan
HTTP dan HTML?
Sekilas Tentang CGI
HTTP, seperti kita tahu, adalah protokol yang mengatur transfer
data dari webserver ke browser dan sebaliknya. Mekanisme CGI (Common Gateway Interface)
memungkinkan webserver untuk menjalankan program lain yang akan
memroses data yang akan dikembalikan. Browser mengirimkan URL
dengan parameter yang berbeda-beda sehingga webserver bisa mengirimkan data
secara dinamis pula.
Mekanisme
CGI dirancang agar bisa diimplementasikan dengan menggunakan bahasa pemrograman
apapun, baik bahasa
skrip maupun bahasa terkompilasi. Karena kepraktisan dan
kemampuannya dalam memroses teks, Perl banyak digunakan untuk membuat program
CGI. Hingga akhirnya banyak yang menyamakan CGI dengan Perl.
Ungkapan “CGI = Perl” adalah ungkapan yang salah. CGI adalah
sebuah mekanisme, dan Perl adalah sebuah bahasa pemrograman.
Environment Variable
Setiap sistem operasi punya mekanisme untuk menyediakan informasi
yang bisa diakses—dibaca dan dimodifikasi—oleh proses-proses yang berjalan di
atasnya. Sebuah proses kemudian bisa menurunkan informasi ini kepada
anaknya dan seterusnya. Kumpulan informasi ini disebut Environment Variable,
dalam program, diakses sebagai sebuah variabel, selanjutnya akan
kita singkat menjadi “variabel ENV” atau “ENV” saja.
Nah,
salah satu hal yang diatur dalam mekanisme CGI adalah soal ENV ini.
Aturan tersebut menetapkan ENV apa saja yang “harus”, “sebaiknya”, atau
“boleh”, disediakan oleh sebuah webserver. Untuk memudahkan urusan, perl
menyimpan ENV dalam sebuah variabel khusus hash bernama %ENV
(tidak heran, bukan?). Contoh,
$ENV{HTTP_USER_AGENT} # nama/model browser $ENV{REMOTE_ADDR} # alamat IP
Mencetak Data ke Browser
Spesifikasi HTTP menyatakan bahwa setiap mengirim keluaran (respond)
ke browser, webserver harus menyertakan sekumpulan informasi yang disebut HTTP response header,
atau header untuk singkatnya. Antara header dan isi dokumen, harus dipisahkan
dengan dua baris baru.
Dalam menulis
program CGI, informasi header yang
paling penting adalah Content-Type. Header inilah yang akan memberitahukan kepada
browser bagaimana isi dokumen harus ditampilkan. Tanpa informasi ini, browser
Anda akan menampilkan pesan 500 Internal Server
Error. Saya menjamin, selama Anda membuat program CGI—dalam bahasa
apapun—pesan ini akan menjadi sesuatu yang selalu Anda
nantikan. Setiap browser punya cara sendiri untuk
menampilkannya. Pasti ada saja kesalahan yang dilakukan, dan
kebanyakan sepele.
Skrip yang kita
bikin akan menghasilkan dokumen HTML. MIME type untuk dokumen HTML adalah text/html.
Kita akan memulai program kita dengan shebang dan mencetak Content-Type untuk dokumen HTML.
#!/usr/bin/perl –w print "Content-Type: text/html\n\n";
Di
contoh-contoh sebelumnya Anda sudah sering melihat karakter \n. Itu sebenarnya karakter tunggal yang
merepresentasikan “baris baru” di sistem Linux, yang hanya mungkin terjadi
dalam string yang dikutip ganda. Dalam kutip tunggal \n tetaplah terdiri atas dua karakter,
yaitu \ (garis miring terbalik),
dan huruf n.
Mencetak Dokumen HTML
Tidak ada yang istimewa dalam mencetak dokumen HTML di perl.
Kita hanya mencetak yang kita inginkan. Fungsi print()
menerima parameter list. Kita bisa melakukan,
print "<html>\n", "<head>\n", "<title>Tutorial#1 - Environment Variables</title>\n", "</head>\n";
Operator qq() memungkinkan
kita untuk mengutip ganda string tanpa perlu menggunakan \,
seperti yang dijelaskan sebelumnya. Untuk <body>, saya menambahkan atribut
warna.
print qq(<body bgcolor="#FFFFFF" text="#000000">\n);
Selain tanda (),
Anda bisa menggunakan karakter bukan alfanumerik lain, seperti qq{}, qq//,
qq!!, dan lain-lain, selama karakter tersebut tidak
disertakan dalam string. Kalau tidak, Anda jatuh kembali pada persoalan yang sama. Jika yang Anda gunakan adalah varian
tanda kurung, pastikan bahwa tidak ada kurung buka tanpa pasangan penutupnya
dalam urutan yang benar. Contoh berikut ini salah,
print qq!"Jangan berseru!" katanya\n!;
Tapi yang ini benar
dan akan mencetak 2 < 3 dan 5 > 4,
print qq<2 < 3 dan 5 > 4>;
Untuk kutip tunggal
disediakan q(). Aturan
pemakaiannya sama. Jadi, dari pada menulis,
$kalimat = '"Saya mengubahnya Jum\'at kemarin," katanya.';
Anda mungkin lebih
suka menulis,
$kalimat = q!"Saya mengubahnya Jum'at kemarin," katanya.!;
Menampilkan Elemen ENV
Seperti disebutkan, ENV bisa diakses oleh skrip Perl melalui hash %ENV. Kita akan
melakukan iterasi untuk mencetak semua elemen %ENV dalam format
“NAMA = NILAI”, baris demi baris. Untuk mengiterasi %ENV
kita menggunakan each().
Fungsi ini akan mengembalikan pasangan elemen
berikutnya dalam bentuk list, sehingga kita bisa menyimpannya dalam array maupun list dari
variabel skalar.
Kita menggunakan dua variabel skalar untuk menampung kembalian dari each().
($nama, $nilai) = each %ENV;
Jika semua pasangan
elemen sudah dikembalikan, each()
akan mengembalikan list
kosong yang bernilai salah dan mengakhiri while. Dengan
demikian, kita bisa menggunakan konstruksi di atas sebagai kondisi bagi while.
Selanjutnya tinggal mencetak $nama dan $nilai
sesuai dengan format yang sudah kita tentukan.
while ( ($nama, $nilai) = each %ENV ) { print "$nama = $nilai<br>\n"; }
Perhatikan
bahwa kita bisa langsung memasukkan variabel ke dalam string. Ini
disebut interpolasi, dan hanya akan terjadi pada
string yang menggunakan kutip ganda. Hal ini juga berlaku
untuk array
(dengan ketentuan berbeda), tapi tidak dengan hash.
Tugas terakhir
adalah menutup dokumen HTML,
print "</body></html>\n";
Bentuk Akhir Skrip
Kalau
dikumpulkan, skrip kita seutuhnya akan menjadi,
#!/usr/bin/perl -w print "Content-Type: text/html\n\n"; print "<html>\n", "<head>\n", "<title>Tutorial#1 - Environment Variables</title>\n", "</head>\n"; print qq(<body bgcolor="#FFFFFF" text="#000000">\n); while ( ($nama, $nilai) = each %ENV ) { print "$nama = $nilai<br>\n"; } print "</body></html>\n";
Sebuah
program yang sangat sederhana. Jika webserver Anda terkonfigurasi dengan
baik, browser Anda akan menampilkan daftar ENV kurang
lebih sama seperti yang ada di Gambar 1.
Dan
demikianlah akhir dari tutorial pertama ini. Kita
sudah membahas tentang penggunaan variabel, menggunakan beberapa fungsi dan
operator, mengenal konstruksi bersyarat dan iterasi, menggunakan salah satu
konstruksi iterasi (while), dan
membuat sebuah program CGI. Bulan depan kita mencoba membuat program
yang lebih “berguna”, di mana pengguna browser bisa memasukkan informasi untuk
kemudian diproses lebih lanjut. Selamat mencoba!
Terima
kasih buat Rheza dan Lola yang telah menyediakan tempat dan fasilitas sehingga
saya dapat menyelesaikan tutorial ini dengan tenang.
sumber : http://www.master.web.id/mwmag/issue/01/content/tutorial-perl-1/index.html
Tidak ada komentar:
Posting Komentar