APAKAH PERL ITU ?
                                    Perl
 merupakan singkatan dari Practical Extraction and Report Language
                                    yang dibuat oleh Larry Wall. Perl 
adalah bahasa interpreter sekaligus kompiler (mirip dengan java). 
Artinya perl akan mendeteksi
                                    setiap baris untuk mencari syntax 
error sebelum program dijalankan. 
Mungkin anda sebelumnya pernah membuat program menggunakan shell script. Berbeda dengan shell script, Perl sangat fleksibel untuk digunakan sehingga kita bisa membentuknya sedemikian rupa sesuai dengan
Mungkin anda sebelumnya pernah membuat program menggunakan shell script. Berbeda dengan shell script, Perl sangat fleksibel untuk digunakan sehingga kita bisa membentuknya sedemikian rupa sesuai dengan
selera kita. Perl banyak 
digunakan untuk pengembangan homepage dengan dipadukan bersma CGI. 
Beberapa software yang
                                    dikembangkan di internet menggunakan
 perl sebagai bahasa intinya, misalnya software pemantau traffic 
internet MRTG.
                                    Perl
 juga mirip dengan bahasa C sehingga prgrammer C pun dapat mempelajari
                                    Perl dengan cepat dan mudah. Salah 
satu contoh kemiripan C dengan Perl adalah adanya tanda titik koma atau 
semiclon ";" pada
                                    akhir suatu perintah. Kelebihan yang
 lain adalah bahwa bahasa Perl dapat menangani string dan ekspresi 
dengan baik
Perl sendiri merupakan program yang dibuat khusus untuk UNIX. Namun demikian bagi para pengguna windows 95 dan windows NT masih dapat menggunakan Perl for win32 yang disebut sebagai activePerl (sesuai dengan nama alamat web penyedia Perl for Win32 tersebut. Active Perl dibuat setelah Perl Versi 5 for Unix diedarkan.
                                    
MENGAPA PERLU PERL ?
Sistem operasi yang didukung
                                    
Perl sendiri merupakan program yang dibuat khusus untuk UNIX. Namun demikian bagi para pengguna windows 95 dan windows NT masih dapat menggunakan Perl for win32 yang disebut sebagai activePerl (sesuai dengan nama alamat web penyedia Perl for Win32 tersebut. Active Perl dibuat setelah Perl Versi 5 for Unix diedarkan.
MENGAPA PERLU PERL ?
Sistem operasi yang didukung
- Perl berawal dari Unix systems sebagai perangkat system administration.
 - Perl bekerja pada mesin Macintosh - lihat The MacPerl Pages dan
 - Perl juga bekerja di mesin berbasis Microsoft - lihat ActiveState Tools Corp.
 
- Perl mengambil fitur-fitur terbaik dari bahasa pemrograman lain, seperti C, awk, sed, sh, dan BASIC.
 - Perl juga berjalan dengan database third-party seperti Oracle, Sybase, Postgres, dan yang lainnya melalui antarmuka database abstrak yang disebut DBI.
 - Perl dapat bekerja dengan HTML, XML, dan mark-up languages lainnya.
 - Perl mempunyai dukungan Unicode.
 - Perl adalah dan akan selalu Y2K compliant.
 - Perl mendukung procedural maupun object-oriented programming.
 - Perl dapat berantarmuka dengan library-library C/C++ eksternal melalui XS atau SWIG.
 - Akan mendukung development Java-Perl Lingo (JPL) ...
 
- Perl didevelop oleh perl5porters, atau p5p for short. Perl 5 sangat extensible dan punya lebih dari 400 modul third party yang tersedia di Comprehensive Perl Archive Network (CPAN).
 - perl (the interpreter of Perl) dapat di embed ke dalam system lain.
 
- Perl adalah bahasa pemrograman web yang paling populer karena fasilitas dengan manipulasi text dan siklus development yang cepat.
 - Perl dijuluki "the duct-tape of the internet".
 - Modul CGI.pm Perl membuat HTML form handling jadi jauh lebih mudah.
 - CGI.pm merupakan bagian distribusi standard Perl.
 - Perl mampu menangani transaksi Web terenkripsi, termasuk untuk tujuan e-commerce.
 - Perusahaan raksasa seperti Amazon.com dan Deja.com menggunakan Perl untuk situs mereka.
 - Perl dapat diembed dalam web server untuk mempercepat prosesing hingga 2000%. Lihat http://perl.apache.org.
 - Apache web server dapat menggunakan mod_perl untuk meng-embed Perl interpreter
 - Netscape web server dapat menggunakan nsapi_perl untuk meng-embed Perl interpreter
 - Dengan menggunakan paket DBI Perl, integrasi web-database menjadi mudah.
 
- The Perl Journal memperkirakan ada lebih dari 1,000,000 pengguna Perl
 - Programming Perl telah diterjemahkan dalam X languages
 
Sejarah Perl
- Untuk lebih detilnya, lihatlah Perl Timeline
 - Perl diciptakan oleh Larry Wall
 - Perl 1.0 dirilis di usenet's alt.comp.sources pada tahun 1987
 - Perl 5 dirilis pada tahun 1994.
 - Versi mutakhir maintenance version dari Perl adalah 5.005_03
 - Versi mutakhir experimental version dari Perl adalah 5.005_58
 
- Manager versi mutakhir maintenance release untuk Perl 5.004 adalah Chip Salzenberg chip@perl.org.
 - Manager versi mutakhir maintenance release untuk Perl 5.005 adalah Chip Salzenberg chip@perl.org.
 - Manager versi mutakhir experimental release untuk Perl 5.005 adalah Gurusamy Sarathy gsar@activestate.com.
 
MENJALANKAN PERL
Cara yang paling mudah menjalankan program perl adalah dengan memanggil perl interpreter dan nama program sebagai argumennya
perl contoh.pl
Nama
 program atau file perlnya adalah contoh.pl dan perl adalah nama
                                    interpreternya. Tentu saja 
pemanggilan program perl di atas berasumsi bahwa path perl sudah 
dikenal, jika tidak maka kita
                                    perlu memanggil dengan full path 
sebagai berikut:
/usr/local/bin/per contoh.pl
Nah jika anda menggunakan windows 98 atau windows NT, anda dapat memanggilnya
                                    dengan cara yang hampir sama, yaitu:
C:\ Ntperl\perl contoh.pl
Tentu
 saja pemanggilan dengan cara di atas agak merepotkan. Untuk itu
                                    kita dapat menyederhanakan 
pemanggilannya dengan tanpa mencantumkan nama interpreter perl, jadi 
cukup nama file perl-nya saja
contoh.pl
Ada beberapa hal yang harus dilakukan pada sistem Unix, yaitu:
1.       Menambahkan full path dari lokasi interpreter perl dibaris pertama pada file program
                                    perl sebagai berikut: 
#!/usr/local/bin/perl
# Nama Program:hello.pl
print "Hello World\n";
- Agar file program perl dapat langsung dieksekusi, maka perlu diubah mode filenya sebagai mode file eksekusi pada sistem UNIX, yaitu
 
Chmod +x contoh.pl
Pada
 sistem Windows, untuk menjadikan program perl langsung dapat 
dieksekusi,
                                    dapat dilakukan dengan membuat 
asosiasi antara file yang berkstensi .pl dan program perl. Jadi setiap 
file berakhiran .pl
                                    akan diekseusi oleh program perl, 
tepatnya active perlMEMBUAT PERL SCRIPT : HELLO WORLD
Perl script merupakan file text yang terdiri dari kumpulan perintah-perintah perl. Berikut ini beberapa ketentuan umum yang perlu diperhatikan:
1.       Spasi kosong di awal baris akan diabaikan 
- Perintah perl diakhiri dengan semicolon atau tanda titik koma ";"
 - Tanda pagar atau "#" akan diartikan sebagai komentar dimana perintah dibelakangnya akan diabaikan
 - Pada sistem Unix, baris pertama dicantumkan lokasi program perl, misalnya #!/usr/local/bin/perl
 
#!/usr/local/bin/perl
# Nama Program:hello.pl
print "Hello World\n";
mari lakukan langkah-langkah berikut:
$ perl hello.pl
Hello world
Atau 
$ chmod +x hello.pl
$ hello.pl
Hello world
$
TIPE DATAAda beberapa jenis tipe data utama, yaitu:
·        
                                    scalar 
- Array
 - Assosiatif array (array lanjutan)
 
Data scalar dapat didefinisikan sebagai suatu data yang dapat dimanipulasi oleh perl, dapat berupa :
·        
                                    angka numerik 
- karakter atau string,
 
Contoh nama variabel yang benar:
$contoh
$bolehpanjanglho
$nama_variabel_scalar_yang_benar
contoh nama variabel yang salah
$ contoh
$nama variabel scalar yang salah
perlu
 diingat bahwa penggunaan huruf dalam penulisan variabel scalar
                                    sangat sensitif terhadap perbedaan 
huruf besar dan kecil. Maka jika Anda membuat variabel skalar $jumlah, 
maka anda tidak
                                    bisa memanggilnya dengan variabel 
scalalr $JUMLAHpenggunaan operator dalam memanipulasi variabel scalar sangat fleksibel. Perhatikan contoh kasus berikut:
$a = 2;
$b = 6;
$c = $a . $b;  # The "." operator
                                    penggabungan 26 
#menjadi karakter
$d = $c / 2;
print $d;
hasilnya adalah:
 
13Pada penggunaan karakter terdapat beberapa hal yang perlu diperhatikan
·        
                                    single quoted atau kutip tunggal 
- double quoted atau kutip ganda
 
perhatikan contoh berikut ini:
#!/usr/local/bin/perl –w
$who = 'Yon Yonson';
$where = 'Wisconsin';
$what = 'in a lumbermill';
print "My name is $who,\n";
# Let's introduce ourselves
print "I live in $where,\n",
"I work $what there.\n";
# Remember the line breaks
print "\nSigned: \t$who,\n\t\t$where.\n";hasilnya adalah:
My
                                    name is Yon Yonson,
I live in Wisconsin,
I work in
                                    a lumbermill there.
Signed:    Yon Yonson,
                                    
WisconsinVariabel khusus pada karakter antara lain:
karakter hasil cetakan
\b backspace
\c baris tanpa diakhiri newline
\f
                                    formfeed
\n newline
\r Carriage return
\t karakter tab
\\ karakter garis miring terbalik
\nnn karakter yang memiliki nilai ASCII nnn,
dimana nn adalah 1 s/d 3 dijit bilangan
                                    oktal
operator yang dipakai oleh numerik dan karakter:| Nama | angka | karakter | 
| Equal | == | eq | 
| Not equal | 1= | ne | 
| Less than | < | lt | 
| Greater than | > | gt | 
| Less than or equal to | <= | le | 
| Grater than or equal to | >= | ge | 
Array
Array adalah suatu bentuk kumpulan atau daftar dari data scalar. Setiap data scalar yang dimasukkan dalam data ini adalah data yang memiliki nilai terendah beranjak menuju nilai yang lebih tinggi
Ada beberapa cara penaganan list dari data scalar yang dimasukkan , dapat berupa titik maupun koma
Salah satu bentuk metode yang paling umum untuk memasukkan beberapa data scalar ke dalam data array adalah dengan memisahkan satu data dengan data lainnya menggunakan tanda koma",". Perhatikan contoh berikut:
(10,20,30) array yang berisi 3 nilai yaitu
                                    10,20,30
(a, b, c, d) array yang berisi 4 nilai yaitu
                                    a,b,c,d
("satu", 2, "ibu") array yang berisi 3 nilai
                                    yaitu "satu", 2 dan "ibu"
metode
 lain untuk memasukkan suatu data array adalah dengan menggunakan
                                    tanda titik dua "..". Tanda ini 
digunakan untuk memasukkan data scalaar yang banyak jumlahnya namun 
berurutan dengan maksud
                                    menghemat penulisan. Perhatikan 
contoh berikut:
(10..15) array yang berisi nilai 10, 11,12,13,14,15
(a..d) array yang berisi nilai a,b,c,d
Dalam bahasa pemrograman perl, variabel array dinyatakan dengan menggunakan
                                    tanda "@" di depan nama variabelnya. Contoh:@trees =
                                    ("Larch", "Hazel", "Oak");
@nomor = (1,2,3);
@campur
                                    = (12,3,"cinta",100, "virus");
Nah selanjutnya untuk menyatakan 
nilai ke satu, ke dua dan seterusnya, dapat digunakan kurung siku 
berikut"[]". Perlu dicatat,
                                    elemen ke satu dari array tersebut 
adalah 0. Jadi dalam kasus @trees diatas, maka elemen ke satu alias 
@trees[1]adalah "Hazel".
                                    Untuk lebih jelasnya, perhatikan 
contoh berikut:@items = (15, 45.67, "case");
print "Take $items[0] $items[2]s
                                    at \$$items[1] each.\n";
hasilnya adalah:
 
Take 15 cases at $45.67 each.Penggunaan Array bersifat dinamis, perhatikan contoh berikut ini:
@A = (1, 2, 3);
@B = (4, 5, 6);
@C = (7, 8, 9);
@D = (@A, @B, @C);
print "aku
                                    adalah $D[0] $D[3] $D[6] \n";
hasilnya adalah:
aku adalah 1 4 7Array Assosiatif
Array asosiatif merupakan pengembangan dari bentuk array yang lain, dimana definisinya dapat disederhanakan sebagai array yang indexing dari nilainya menggunakan string dan bukan bilangan – biasa disebut keys. Perhatikan contoh berikut:
print $fruit{"Yellow"};
hasilnya:
Banana
Yang
 membedakan dengan array sebelumnya adalah tanda % sebagai tanda
                                    dari array asosiatif, dimana di 
dalam array terdapat pasangan key dan pasangan nilainya. Jadi nilai 
apple memiliki key green,
                                    nilai orange memiliki ket orange dan nilai banana memiliki key yellow. Lumayan bingung ? bayangkan array asosiatif ini sebagai suatu relasional database.
                                    Perhatikan contoh berikut ini:%Folk =   ( 'YY', 'Yon Yonson',
           
                                    'TC', 'Terra Cotta',
           
                                    'RE', 'Ron Everly' );
%State
                                    = ( 'YY', 'Wisconsin',
          
                                    'TC', 'Minnesota',
          
                                    'RE', 'Bliss' );
%Job = (
                                    'YY', 'work in a lumbermill',
        
                                    'TC', 'teach nuclear physics',
        
                                    'RE', 'watch football');
foreach
                                    $person ( 'TS', 'YY', 'RE' )  {
        print "My name is $Folk{$person},\n",
              "I
                                    live in $State{$person},\n",
             
                                    "I $Job{$person} there.\n\n";
       
                                    }
terbayang kah hasilnya ? jika masih bingung, mungkin anda belum mengenal
                                    command foreach yang akan dijelaskan pada bagian lain. Tapi coba perhatikan contoh berikut:print keys %Folk;
print values %State;
hasilnya adlah sebagai berikut:
YYRETCWisconsinBlissMinnesota.
STANDAR MASUKAN, KELUARAN DAN ERROR
Seperti juga dalam bahasa pemrograman lainny, maka perl memiliki beberapa standar keluaran, masukan dan error sebagai berikut:
STDIN: standar input, normalnya dari keyboard
STDOUT: standar keluaran, normalnya dari console
STDERR: perangkat dimana biasanya pesan kesalahan (error ) ditulis atau ditampilkan
Perhatikan contoh berikut ini:
Print "apakah mobil Anda ?";
$mobil = <STDIN>
print "mobil kamu mereknya $mobil
                                    nih\n";
hasilnya sebagai berikut:
apakah mobil Anda ? karimun 
mobil kamu mereknya karimun nih 
nah kalau contoh berikut ini, bagaimana hasilnya yah ?open (INDATA, "/etc/stuff/Friday.dat");
open
                                    (LOGFILE, ">/etc/logs/reclaim.log");
print LOGFILE "Log of reclaim procedure\n";
sebelumnya perhatikan Symbol akses file
Symbol 
 | 
                                    Meaning | 
< 
 | 
                                    Opens the file for reading. This is the default action. | 
> 
 | 
                                    Opens the file for writing. | 
>> 
 | 
                                    Opens the file for appending. | 
+< 
 | 
                                    Opens the file for both reading and writing. | 
+>  
 | 
                                    Opens the file for both reading and writing. | 
| (before file name) 
 | 
                                    Treat file as command into which Perl is to pipe text. | 
| (after file name) 
 | 
                                    Treat file as command from which input is to be piped to Perl. | 
atau mungkin contoh sekedar mencetak pesan berikut:
open (MYLPR, "|lpr -Pmypr");
print MYLPR "A line of output\n";
close MYLPR;
atau sekedar menampilkan isi file ke layar consoleopen (SIGFILE, ".signature");
while (
                                    <SIGFILE> )  {
print; print "\n";
}tetapi kalau pesan error sebaiknya sebagai berikut:
print (STDERR "Oops, something broke.\n");
ALUR KONTROL
Beberapa alur kontrol sederhana sudah kita bicarakan selintas di atas. Sebelum membicarakan terlalu jauh, perlu dipahami bersama pemanfaatan operator or "||" dan and "&&". Contoh berikut ini adalah variabel yang berisi True atau False tergantung dari nilai yang terkandung dari variabel yang dibandingkan:
$Weekend = $Saturday || $Sunday;
variabel $Weekend akan bernilai true jika nilai dari $Saturday atau $Sunday
                                    adalah true.
$Solvent = ($income > 3) &&
                                    ($debts < 10);
sedangkan pada contoh diatas variabel $Solvent akan True jika variabel
                                    $income adalah lebih besar dari 3 dan variabel $debt kurang dari 10berikut ini adalaha contoh trick dari pemrograman perl
$value > 10 || print "Oops, low value $value ...\n";
Jika
 nilainya lebih besar dari 10, maka sisi sebelah kanan dari ekspresi
                                    diatas tidak akan dievaluasi alias 
tidak ada yang dicetak. Tetapi jika nilainya kurang dari 10, maka sis 
sebelah kanan dari
                                    ekspresi di atas akan dievaluasi dan
 hasilnya . . . .Oops,
                                    low value 6...
Nah hal yang sama juga kita bisa berlakukan pada operator and &&
                                    sebagai berikut:
$value > 10 && print "OK,
                                    value is high enough…\n";
pemrograman perl memang membutuhkan kreatifitas yang baik dari pemrogramnya,
                                    perhatikan trik lainnya:
$length <= 80 || die "Line too
                                    long.\n";
$errorlevel > 3 && warn
                                    "Hmmm, strange error level ($errorlevel)…\n";
open ( LOGFILE, ">install.log")
                                    || &bust("Log file");
alur kontrol dalam single statement
Terdapat 4 pola alur kontrol yang dikenal dalam perl sebagai berikut:
Statemen dieksekusi jika lokigal ekspresinya true, jika false maka tidak dieksekusi
$max = 100 if $min < 100;print "Empty!\n" if !$full;
statement unless tidak akan dieksekusi jika logikal ekspresi
                                    adala true, jika false maka tidak dieksekusi: 
open (ERRLOG, "test.log")
                                    unless $NoLog;
print "Success" unless $error>2;
statement while dieksekusi berulang sampai logikal ekspresi
                                    false
$total -= $decrement while $total > $decrement;
$n=1000; "print $n\n" while $n- > 0;
statement until dieksekusi berulang sampai dengan lokgikal ekspresi true
$total += $value[$count++] until $total > $limit;
print RESULTS
                                    "Next value: $value[$n++]" until  $value[$n] = -1;
alur kontrol majemuk IF
if ( ( $total += $value ) > $limit
                                    )  {
   print LOGFILE
                                    "Maximum limit $limit exceeded.",
" Offending value was $value.\n";
close (LOGFILE);
die "Too many! Check the log file for details.\n";
}alur kontrol majemuk if than else
if ( !open( LOGFILE, "install.log") )   {
   close ( INFILE );
die "Unable to open log file!\n";
}
elseif ( !open( CFGFILE, ">system.cfg")
                                    )  {
  
                                    print LOGFILE "Error during install:",
" Unable to open config file for writing.\n";
close ( LOGFILE );
  
                                    die "Unable to open config file for writing!\n";
  
                                    }
else  {
print CFGFILE "Your settings go here!\n";
}
Loop – until
 
until ( $total >= 50 ) { 
print "Enter a value: ";
$value = scalar (<STDIN>);
$total += $value;
print "Current total is $total\n";
}
print
                                    "Enough!\n";
Loop - for
for ( $count = 0; $count < 100; $count++ )  {
print "Something";
}
PATTERN MATCHING
Salah satu kehebatan perl adalah melakukan pencarian kata atau huruf dan me-replacenya – match and replace pattern. Kemampuan dasra dari pattern matching adalah:
·        
                                    Matching: pencocokan pola 
- Subtitution: penggantian atau subtitusi dari pola yang tercocokkan
 
Ekspresi reguler
Pencocokan biasanya menggunakan ekspresi regular, antara lain sebagai berikut:
Assertion  
 | 
                                    Matches | Example | Matches | Doesn't Match | 
| 
                                     
^ 
 | 
                                    Start of string | 
                                     
^fool  
 | 
                                    
                                     
foolish  
 | 
                                    
                                     
tomfoolery  
 | 
| 
                                     
$ 
 | 
                                    End of string | 
                                     
fool$  
 | 
                                    
                                     
April fool  
 | 
                                    
                                     
foolish  
 | 
| 
                                     
\b 
 | 
                                    Word boundary | 
                                     
be\bside  
 | 
                                    
                                     
be side  
 | 
                                    
                                     
beside  
 | 
| 
                                     
\B 
 | 
                                    Non-word boundary | 
                                     
be\Bside  
 | 
                                    
                                     
beside  
 | 
                                    
                                     
be side  
 | 
| Atom | Matches | Example | Matches | Doesn't Match | 
| 
                                     
. 
 | 
                                    Any character except newline | 
                                     
b.b  
 | 
                                    
                                     
bob 
 | 
                                    
                                     
bb 
 | 
| List of characters in square brackets | Any one of those characters | 
                                     
^[Bb]  
 | 
                                    
                                     
Bob, bob  
 | 
                                    
                                     
Rbob 
 | 
| Regular expression in parentheses | Anything that regular expression | 
| 
                                     
Quantifier 
 | 
                                    Matches | Example | Matches | Doesn't Match | 
| 
                                     
* 
 | 
                                    Zero or more instances of the atom | 
                                     
ab*c  
 | 
                                    
                                     
ac, abc  
 | 
                                    
                                     
abb 
 | 
| 
                                     
+ 
 | 
                                    One or more instances of the atom | 
                                     
ab*c  
 | 
                                    
                                     
abc 
 | 
                                    
                                     
ac 
 | 
| 
                                     
? 
 | 
                                    Zero or one instances of the atom | 
                                     
ab?c  
 | 
                                    
                                     
ac, abc  
 | 
                                    
                                     
abbc 
 | 
| 
                                     
{n} 
 | 
                                    
                                     
n instances of the atom  
 | 
                                    
                                     
ab{2}c  
 | 
                                    
                                     
abbc 
 | 
                                    
                                     
abbbc 
 | 
| 
                                     
{n,} 
 | 
                                    At least n instances of the atom | 
                                     
ab{2,}c  
 | 
                                    
                                     
abbc, .abbbc  
 | 
                                    abc | 
| 
                                     
{nm} 
 | 
                                    At least n, at most m instances of the atom | 
                                     
ab{2,3}c  
 | 
                                    
                                     
abbc 
 | 
                                    
                                     
abbbbc 
 | 
Symbol 
 | 
                                    Matches | 
Example 
 | 
                                    
Matches 
 | 
                                    
Doesn't Match 
 | 
\d 
 | 
                                    Any digit | 
b\dd 
 | 
                                    
b4d 
 | 
                                    
bad 
 | 
\D 
 | 
                                    Non-digit | 
b\Dd 
 | 
                                    
bdd 
 | 
                                    
b4d 
 | 
\n  
 | 
                                    Newline | |||
\r 
 | 
                                    Carriage return | |||
\t 
 | 
                                    Tab | |||
\f 
 | 
                                    Formfeed | |||
\s 
 | 
                                    White space character | |||
\S 
 | 
                                    Non-white space character | |||
\w 
 | 
                                    Alphanumeric character | 
a\wb 
 | 
                                    
a2b 
 | 
                                    
a^b 
 | 
\W 
 | 
                                    Non-alphanumeric character | 
a\Wb 
 | 
                                    
aa^b 
 | 
                                    
aabb 
 | 
Matching
Proses pencocokan pola menggunakan tanda "/" diikuti reguler ekspresi. Perhatikan contoh berikut ini
$prompt = "Enter some text or press Ctrl-Z
                                    to stop: ";
print $prompt;
while (<>)  {
   /^[aA]/ &&
                                    print "Starts with a or A.  ";
/[0-9]$/ && print "Ends with a digit. ";
/perl/ && print "You said it! ";
   print
                                    $prompt;
}perhatikan contoh berikut pula:
The
=~ operator performs pattern matching. For example, if: $s = 'One if by land and two if by sea';
then: 
    if ($s =~ /if by la/) {print "YES"}
    else {print "NO"}
prints YES,     if ($s =~ /one/)
                                    {print "YES"}
    else {print "NO"}
prints NO,     if ($s =~ /one/i)
                                    {print "YES"}
    else {print "NO"}
SubstitusiProses penggantian kata atau huruf, perhatikan contoh berikut ini:
$house = "henhouse";
$house  =~ s/hen/dog/;
akan mengubah henhouse menjadi doghouseperhatikan cara mengubahnya menggunakan operator khusus =~ dan s// dimana memiliki syntax s/pola/source/paramater dengan parameter:
Switch 
 | 
                                    Meaning | 
g 
 | 
                                    Perform global matching | 
i 
 | 
                                    Case-insensitive matching | 
o 
 | 
                                    Evaluate the regular expression once only | 
Contoh
                                    penggunaan parameter dan substitusi:
@hits = ("Yon Yonson, Wisconsin" =~ /(\won)/g);
print "Matched on
                                    ", join(', ', @hits), ".\n";
hasilnya adalah:
Matched on yon, Yon, son, con.
CONTOH PEMAKAIAN PERL
Script perl untuk HTML sederhana:
#!/usr/local/bin/perl
#nama file: coba.pl
print "content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Selamat
                                    Datang Di Homepage Kami1</TITLE></HEAD>\n";
print "<BODY><H1>Terus
                                    Belajar, Terus Gratis!</H1></BODY></HTML>\n";
exit;
script perl untuk HTML dengan input file:
 
#!/usr/local/bin/perl
#
# Read in the data file
# Print out HTML formatted lines
#
$file = 'data.txt' ;                  # Name
                                    the file
open(INFO, "<$file" ) ;              
                                    # Open the file
@lines = <INFO> ;                    
                                    # Read it into an array
close(INFO) ;                        
                                    # Close the file
print "<HTML> <HEAD> <TITLE> PERL output </TITLE> </HEAD>\n" ;
print " <BODY>\n" ;
foreach $line (@lines)                # assign @lines to
                                    $line, one at a time
{                                    
                                    # braces {} are required, bracket code
   print "\n   <P> $line   </P>" ;    # print formatted lines to
                                    screen 
}
print "\n </BODY>\n</HTML>\n" ;
#
# DONE
#
contoh pemanfaatan reguler ekspresi yang lebih kompleks:
#!/usr/local/bin/perl
#
#
                                    Read in the data file
# Print out a HTML formatted lines
#
$file
                                    = 'data.txt' ;                 
                                    # Name the file
open(INFO, "<$file") ;               
                                    # Open the file
@lines = <INFO> ;                    
                                    # Read it into an array
close(INFO) ;                        
                                    # Close the file
$long_line = join("\n", @lines ) ;    # Convert array to variable
                              
                                           # retaining end-of-line characters
@dash_sep
                                    = split ( /---------/, $long_line ) ; # split long_line at dashes
print "<HTML>
                                    <HEAD> <TITLE> PERL output </TITLE> </HEAD>\n" ;
print " 
                                    <BODY>\n" ;
foreach $line (@dash_sep)            
                                    # assign @dash_sep to $line, one at a time
{ 
  $line
                                    =~ s/line of text./text fragment. /g ; # substitute text
  $line =~
                                    s/\n//g ;                          
                                    # remove end of line characters
 if ($line =~ /^A third text/ )                # test for 3rd text
                                    fragment
 {
print " <HR> <BR> \n" ;
}
print " <P> $line </P> \n" ;
}
print
                                    "  </BODY>\n</HTML>\n" ;
#
#
                                    DONE
#
Tidak ada komentar:
Posting Komentar